/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty H-Termination with start terms of the given HASKELL could not be shown: (0) HASKELL (1) BR [EQUIVALENT, 0 ms] (2) HASKELL (3) COR [EQUIVALENT, 0 ms] (4) HASKELL (5) Narrow [SOUND, 0 ms] (6) AND (7) QDP (8) MNOCProof [EQUIVALENT, 0 ms] (9) QDP (10) InductionCalculusProof [EQUIVALENT, 0 ms] (11) QDP (12) QDP (13) MNOCProof [EQUIVALENT, 0 ms] (14) QDP (15) InductionCalculusProof [EQUIVALENT, 0 ms] (16) QDP (17) TransformationProof [EQUIVALENT, 0 ms] (18) QDP (19) DependencyGraphProof [EQUIVALENT, 0 ms] (20) QDP (21) UsableRulesProof [EQUIVALENT, 0 ms] (22) QDP (23) QReductionProof [EQUIVALENT, 0 ms] (24) QDP (25) TransformationProof [EQUIVALENT, 0 ms] (26) QDP (27) TransformationProof [EQUIVALENT, 0 ms] (28) QDP (29) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) TransformationProof [EQUIVALENT, 0 ms] (32) QDP (33) TransformationProof [EQUIVALENT, 0 ms] (34) QDP (35) TransformationProof [EQUIVALENT, 0 ms] (36) QDP (37) TransformationProof [EQUIVALENT, 0 ms] (38) QDP (39) TransformationProof [EQUIVALENT, 0 ms] (40) QDP (41) TransformationProof [EQUIVALENT, 0 ms] (42) QDP (43) TransformationProof [EQUIVALENT, 0 ms] (44) QDP (45) TransformationProof [EQUIVALENT, 0 ms] (46) QDP (47) TransformationProof [EQUIVALENT, 0 ms] (48) QDP (49) TransformationProof [EQUIVALENT, 0 ms] (50) QDP (51) TransformationProof [EQUIVALENT, 0 ms] (52) QDP (53) TransformationProof [EQUIVALENT, 0 ms] (54) QDP (55) TransformationProof [EQUIVALENT, 0 ms] (56) QDP (57) DependencyGraphProof [EQUIVALENT, 0 ms] (58) QDP (59) UsableRulesProof [EQUIVALENT, 0 ms] (60) QDP (61) QReductionProof [EQUIVALENT, 0 ms] (62) QDP (63) TransformationProof [EQUIVALENT, 0 ms] (64) QDP (65) UsableRulesProof [EQUIVALENT, 0 ms] (66) QDP (67) QReductionProof [EQUIVALENT, 0 ms] (68) QDP (69) TransformationProof [EQUIVALENT, 0 ms] (70) QDP (71) TransformationProof [EQUIVALENT, 0 ms] (72) QDP (73) TransformationProof [EQUIVALENT, 0 ms] (74) QDP (75) DependencyGraphProof [EQUIVALENT, 0 ms] (76) QDP (77) TransformationProof [EQUIVALENT, 0 ms] (78) QDP (79) TransformationProof [EQUIVALENT, 0 ms] (80) QDP (81) TransformationProof [EQUIVALENT, 0 ms] (82) QDP (83) TransformationProof [EQUIVALENT, 0 ms] (84) QDP (85) TransformationProof [EQUIVALENT, 0 ms] (86) QDP (87) DependencyGraphProof [EQUIVALENT, 0 ms] (88) QDP (89) TransformationProof [EQUIVALENT, 0 ms] (90) QDP (91) TransformationProof [EQUIVALENT, 0 ms] (92) QDP (93) TransformationProof [EQUIVALENT, 0 ms] (94) QDP (95) TransformationProof [EQUIVALENT, 0 ms] (96) QDP (97) TransformationProof [EQUIVALENT, 2 ms] (98) QDP (99) DependencyGraphProof [EQUIVALENT, 0 ms] (100) QDP (101) TransformationProof [EQUIVALENT, 0 ms] (102) QDP (103) TransformationProof [EQUIVALENT, 0 ms] (104) QDP (105) TransformationProof [EQUIVALENT, 0 ms] (106) QDP (107) TransformationProof [EQUIVALENT, 0 ms] (108) QDP (109) TransformationProof [EQUIVALENT, 0 ms] (110) QDP (111) DependencyGraphProof [EQUIVALENT, 0 ms] (112) QDP (113) TransformationProof [EQUIVALENT, 0 ms] (114) QDP (115) TransformationProof [EQUIVALENT, 0 ms] (116) QDP (117) TransformationProof [EQUIVALENT, 0 ms] (118) QDP (119) TransformationProof [EQUIVALENT, 0 ms] (120) QDP (121) QDPOrderProof [EQUIVALENT, 11 ms] (122) QDP (123) MNOCProof [EQUIVALENT, 0 ms] (124) QDP (125) InductionCalculusProof [EQUIVALENT, 0 ms] (126) QDP (127) QDP (128) QDPSizeChangeProof [EQUIVALENT, 0 ms] (129) YES (130) QDP (131) MNOCProof [EQUIVALENT, 0 ms] (132) QDP (133) InductionCalculusProof [EQUIVALENT, 0 ms] (134) QDP (135) TransformationProof [EQUIVALENT, 0 ms] (136) QDP (137) DependencyGraphProof [EQUIVALENT, 0 ms] (138) QDP (139) UsableRulesProof [EQUIVALENT, 0 ms] (140) QDP (141) QReductionProof [EQUIVALENT, 0 ms] (142) QDP (143) TransformationProof [EQUIVALENT, 0 ms] (144) QDP (145) TransformationProof [EQUIVALENT, 0 ms] (146) QDP (147) TransformationProof [EQUIVALENT, 0 ms] (148) QDP (149) TransformationProof [EQUIVALENT, 0 ms] (150) QDP (151) TransformationProof [EQUIVALENT, 0 ms] (152) QDP (153) TransformationProof [EQUIVALENT, 0 ms] (154) QDP (155) TransformationProof [EQUIVALENT, 0 ms] (156) QDP (157) TransformationProof [EQUIVALENT, 0 ms] (158) QDP (159) TransformationProof [EQUIVALENT, 0 ms] (160) QDP (161) TransformationProof [EQUIVALENT, 0 ms] (162) QDP (163) TransformationProof [EQUIVALENT, 0 ms] (164) QDP (165) TransformationProof [EQUIVALENT, 0 ms] (166) QDP (167) TransformationProof [EQUIVALENT, 0 ms] (168) QDP (169) TransformationProof [EQUIVALENT, 0 ms] (170) QDP (171) TransformationProof [EQUIVALENT, 0 ms] (172) QDP (173) TransformationProof [EQUIVALENT, 0 ms] (174) QDP (175) DependencyGraphProof [EQUIVALENT, 0 ms] (176) QDP (177) UsableRulesProof [EQUIVALENT, 0 ms] (178) QDP (179) QReductionProof [EQUIVALENT, 0 ms] (180) QDP (181) TransformationProof [EQUIVALENT, 0 ms] (182) QDP (183) UsableRulesProof [EQUIVALENT, 0 ms] (184) QDP (185) QReductionProof [EQUIVALENT, 0 ms] (186) QDP (187) TransformationProof [EQUIVALENT, 0 ms] (188) QDP (189) TransformationProof [EQUIVALENT, 0 ms] (190) QDP (191) TransformationProof [EQUIVALENT, 0 ms] (192) QDP (193) DependencyGraphProof [EQUIVALENT, 0 ms] (194) QDP (195) TransformationProof [EQUIVALENT, 0 ms] (196) QDP (197) TransformationProof [EQUIVALENT, 0 ms] (198) QDP (199) TransformationProof [EQUIVALENT, 0 ms] (200) QDP (201) TransformationProof [EQUIVALENT, 0 ms] (202) QDP (203) TransformationProof [EQUIVALENT, 0 ms] (204) QDP (205) DependencyGraphProof [EQUIVALENT, 0 ms] (206) QDP (207) TransformationProof [EQUIVALENT, 0 ms] (208) QDP (209) TransformationProof [EQUIVALENT, 0 ms] (210) QDP (211) TransformationProof [EQUIVALENT, 0 ms] (212) QDP (213) TransformationProof [EQUIVALENT, 0 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 0 ms] (216) QDP (217) DependencyGraphProof [EQUIVALENT, 0 ms] (218) QDP (219) TransformationProof [EQUIVALENT, 0 ms] (220) QDP (221) TransformationProof [EQUIVALENT, 0 ms] (222) QDP (223) TransformationProof [EQUIVALENT, 0 ms] (224) QDP (225) TransformationProof [EQUIVALENT, 0 ms] (226) QDP (227) TransformationProof [EQUIVALENT, 0 ms] (228) QDP (229) DependencyGraphProof [EQUIVALENT, 0 ms] (230) QDP (231) TransformationProof [EQUIVALENT, 0 ms] (232) QDP (233) TransformationProof [EQUIVALENT, 0 ms] (234) QDP (235) TransformationProof [EQUIVALENT, 0 ms] (236) QDP (237) TransformationProof [EQUIVALENT, 0 ms] (238) QDP (239) QDPOrderProof [EQUIVALENT, 15 ms] (240) QDP (241) MNOCProof [EQUIVALENT, 0 ms] (242) QDP (243) InductionCalculusProof [EQUIVALENT, 0 ms] (244) QDP (245) QDP (246) DependencyGraphProof [EQUIVALENT, 0 ms] (247) AND (248) QDP (249) TransformationProof [EQUIVALENT, 0 ms] (250) QDP (251) TransformationProof [EQUIVALENT, 0 ms] (252) QDP (253) TransformationProof [EQUIVALENT, 0 ms] (254) QDP (255) TransformationProof [EQUIVALENT, 0 ms] (256) QDP (257) TransformationProof [EQUIVALENT, 0 ms] (258) QDP (259) TransformationProof [EQUIVALENT, 0 ms] (260) QDP (261) TransformationProof [EQUIVALENT, 0 ms] (262) QDP (263) QDPOrderProof [EQUIVALENT, 0 ms] (264) QDP (265) MNOCProof [EQUIVALENT, 1 ms] (266) QDP (267) InductionCalculusProof [EQUIVALENT, 0 ms] (268) QDP (269) TransformationProof [EQUIVALENT, 0 ms] (270) QDP (271) TransformationProof [EQUIVALENT, 0 ms] (272) QDP (273) TransformationProof [EQUIVALENT, 0 ms] (274) QDP (275) TransformationProof [EQUIVALENT, 0 ms] (276) QDP (277) DependencyGraphProof [EQUIVALENT, 0 ms] (278) QDP (279) TransformationProof [EQUIVALENT, 0 ms] (280) QDP (281) TransformationProof [EQUIVALENT, 0 ms] (282) QDP (283) TransformationProof [EQUIVALENT, 0 ms] (284) QDP (285) TransformationProof [EQUIVALENT, 0 ms] (286) QDP (287) TransformationProof [EQUIVALENT, 0 ms] (288) QDP (289) DependencyGraphProof [EQUIVALENT, 0 ms] (290) QDP (291) TransformationProof [EQUIVALENT, 0 ms] (292) QDP (293) TransformationProof [EQUIVALENT, 0 ms] (294) QDP (295) TransformationProof [EQUIVALENT, 0 ms] (296) QDP (297) TransformationProof [EQUIVALENT, 0 ms] (298) QDP (299) TransformationProof [EQUIVALENT, 0 ms] (300) QDP (301) DependencyGraphProof [EQUIVALENT, 0 ms] (302) QDP (303) TransformationProof [EQUIVALENT, 0 ms] (304) QDP (305) TransformationProof [EQUIVALENT, 0 ms] (306) QDP (307) TransformationProof [EQUIVALENT, 0 ms] (308) QDP (309) TransformationProof [EQUIVALENT, 0 ms] (310) QDP (311) MNOCProof [EQUIVALENT, 0 ms] (312) QDP (313) InductionCalculusProof [EQUIVALENT, 0 ms] (314) QDP (315) QDP (316) TransformationProof [EQUIVALENT, 0 ms] (317) QDP (318) TransformationProof [EQUIVALENT, 0 ms] (319) QDP (320) TransformationProof [EQUIVALENT, 0 ms] (321) QDP (322) TransformationProof [EQUIVALENT, 0 ms] (323) QDP (324) TransformationProof [EQUIVALENT, 0 ms] (325) QDP (326) TransformationProof [EQUIVALENT, 0 ms] (327) QDP (328) TransformationProof [EQUIVALENT, 0 ms] (329) QDP (330) TransformationProof [EQUIVALENT, 0 ms] (331) QDP (332) TransformationProof [EQUIVALENT, 0 ms] (333) QDP (334) TransformationProof [EQUIVALENT, 0 ms] (335) QDP (336) TransformationProof [EQUIVALENT, 0 ms] (337) QDP (338) TransformationProof [EQUIVALENT, 0 ms] (339) QDP (340) TransformationProof [EQUIVALENT, 0 ms] (341) QDP (342) TransformationProof [EQUIVALENT, 0 ms] (343) QDP (344) TransformationProof [EQUIVALENT, 0 ms] (345) QDP (346) TransformationProof [EQUIVALENT, 0 ms] (347) QDP (348) TransformationProof [EQUIVALENT, 0 ms] (349) QDP (350) QDPOrderProof [EQUIVALENT, 0 ms] (351) QDP (352) MNOCProof [EQUIVALENT, 0 ms] (353) QDP (354) InductionCalculusProof [EQUIVALENT, 0 ms] (355) QDP (356) TransformationProof [EQUIVALENT, 0 ms] (357) QDP (358) DependencyGraphProof [EQUIVALENT, 0 ms] (359) QDP (360) TransformationProof [EQUIVALENT, 0 ms] (361) QDP (362) DependencyGraphProof [EQUIVALENT, 0 ms] (363) QDP (364) TransformationProof [EQUIVALENT, 0 ms] (365) QDP (366) TransformationProof [EQUIVALENT, 0 ms] (367) QDP (368) TransformationProof [EQUIVALENT, 0 ms] (369) QDP (370) TransformationProof [EQUIVALENT, 0 ms] (371) QDP (372) TransformationProof [EQUIVALENT, 0 ms] (373) QDP (374) DependencyGraphProof [EQUIVALENT, 0 ms] (375) QDP (376) TransformationProof [EQUIVALENT, 0 ms] (377) QDP (378) TransformationProof [EQUIVALENT, 0 ms] (379) QDP (380) TransformationProof [EQUIVALENT, 0 ms] (381) QDP (382) TransformationProof [EQUIVALENT, 0 ms] (383) QDP (384) TransformationProof [EQUIVALENT, 0 ms] (385) QDP (386) DependencyGraphProof [EQUIVALENT, 0 ms] (387) QDP (388) TransformationProof [EQUIVALENT, 0 ms] (389) QDP (390) TransformationProof [EQUIVALENT, 0 ms] (391) QDP (392) TransformationProof [EQUIVALENT, 0 ms] (393) QDP (394) TransformationProof [EQUIVALENT, 0 ms] (395) QDP (396) MNOCProof [EQUIVALENT, 0 ms] (397) QDP (398) InductionCalculusProof [EQUIVALENT, 0 ms] (399) QDP (400) QDP (401) DependencyGraphProof [EQUIVALENT, 0 ms] (402) AND (403) QDP (404) TransformationProof [EQUIVALENT, 0 ms] (405) QDP (406) TransformationProof [EQUIVALENT, 0 ms] (407) QDP (408) TransformationProof [EQUIVALENT, 0 ms] (409) QDP (410) TransformationProof [EQUIVALENT, 0 ms] (411) QDP (412) TransformationProof [EQUIVALENT, 0 ms] (413) QDP (414) TransformationProof [EQUIVALENT, 0 ms] (415) QDP (416) TransformationProof [EQUIVALENT, 0 ms] (417) QDP (418) TransformationProof [EQUIVALENT, 0 ms] (419) QDP (420) TransformationProof [EQUIVALENT, 0 ms] (421) QDP (422) TransformationProof [EQUIVALENT, 0 ms] (423) QDP (424) TransformationProof [EQUIVALENT, 0 ms] (425) QDP (426) TransformationProof [EQUIVALENT, 0 ms] (427) QDP (428) TransformationProof [EQUIVALENT, 0 ms] (429) QDP (430) TransformationProof [EQUIVALENT, 0 ms] (431) QDP (432) TransformationProof [EQUIVALENT, 0 ms] (433) QDP (434) TransformationProof [EQUIVALENT, 0 ms] (435) QDP (436) TransformationProof [EQUIVALENT, 0 ms] (437) QDP (438) QDPOrderProof [EQUIVALENT, 0 ms] (439) QDP (440) MNOCProof [EQUIVALENT, 0 ms] (441) QDP (442) InductionCalculusProof [EQUIVALENT, 0 ms] (443) QDP (444) TransformationProof [EQUIVALENT, 0 ms] (445) QDP (446) DependencyGraphProof [EQUIVALENT, 0 ms] (447) QDP (448) TransformationProof [EQUIVALENT, 0 ms] (449) QDP (450) DependencyGraphProof [EQUIVALENT, 0 ms] (451) QDP (452) TransformationProof [EQUIVALENT, 0 ms] (453) QDP (454) TransformationProof [EQUIVALENT, 0 ms] (455) QDP (456) TransformationProof [EQUIVALENT, 0 ms] (457) QDP (458) TransformationProof [EQUIVALENT, 0 ms] (459) QDP (460) TransformationProof [EQUIVALENT, 0 ms] (461) QDP (462) DependencyGraphProof [EQUIVALENT, 0 ms] (463) QDP (464) TransformationProof [EQUIVALENT, 0 ms] (465) QDP (466) TransformationProof [EQUIVALENT, 0 ms] (467) QDP (468) TransformationProof [EQUIVALENT, 0 ms] (469) QDP (470) TransformationProof [EQUIVALENT, 0 ms] (471) QDP (472) TransformationProof [EQUIVALENT, 0 ms] (473) QDP (474) DependencyGraphProof [EQUIVALENT, 0 ms] (475) QDP (476) TransformationProof [EQUIVALENT, 0 ms] (477) QDP (478) TransformationProof [EQUIVALENT, 0 ms] (479) QDP (480) TransformationProof [EQUIVALENT, 0 ms] (481) QDP (482) TransformationProof [EQUIVALENT, 0 ms] (483) QDP (484) MNOCProof [EQUIVALENT, 0 ms] (485) QDP (486) InductionCalculusProof [EQUIVALENT, 0 ms] (487) QDP (488) QDP (489) TransformationProof [EQUIVALENT, 0 ms] (490) QDP (491) TransformationProof [EQUIVALENT, 0 ms] (492) QDP (493) TransformationProof [EQUIVALENT, 0 ms] (494) QDP (495) TransformationProof [EQUIVALENT, 0 ms] (496) QDP (497) TransformationProof [EQUIVALENT, 0 ms] (498) QDP (499) TransformationProof [EQUIVALENT, 0 ms] (500) QDP (501) TransformationProof [EQUIVALENT, 0 ms] (502) QDP (503) QDPOrderProof [EQUIVALENT, 0 ms] (504) QDP (505) MNOCProof [EQUIVALENT, 0 ms] (506) QDP (507) InductionCalculusProof [EQUIVALENT, 0 ms] (508) QDP (509) TransformationProof [EQUIVALENT, 0 ms] (510) QDP (511) TransformationProof [EQUIVALENT, 0 ms] (512) QDP (513) TransformationProof [EQUIVALENT, 0 ms] (514) QDP (515) TransformationProof [EQUIVALENT, 0 ms] (516) QDP (517) DependencyGraphProof [EQUIVALENT, 0 ms] (518) QDP (519) TransformationProof [EQUIVALENT, 0 ms] (520) QDP (521) TransformationProof [EQUIVALENT, 0 ms] (522) QDP (523) TransformationProof [EQUIVALENT, 0 ms] (524) QDP (525) TransformationProof [EQUIVALENT, 0 ms] (526) QDP (527) TransformationProof [EQUIVALENT, 0 ms] (528) QDP (529) DependencyGraphProof [EQUIVALENT, 0 ms] (530) QDP (531) TransformationProof [EQUIVALENT, 0 ms] (532) QDP (533) TransformationProof [EQUIVALENT, 0 ms] (534) QDP (535) TransformationProof [EQUIVALENT, 0 ms] (536) QDP (537) TransformationProof [EQUIVALENT, 0 ms] (538) QDP (539) TransformationProof [EQUIVALENT, 0 ms] (540) QDP (541) DependencyGraphProof [EQUIVALENT, 0 ms] (542) QDP (543) TransformationProof [EQUIVALENT, 0 ms] (544) QDP (545) TransformationProof [EQUIVALENT, 0 ms] (546) QDP (547) TransformationProof [EQUIVALENT, 0 ms] (548) QDP (549) TransformationProof [EQUIVALENT, 0 ms] (550) QDP (551) MNOCProof [EQUIVALENT, 0 ms] (552) QDP (553) InductionCalculusProof [EQUIVALENT, 0 ms] (554) QDP (555) QDP (556) DependencyGraphProof [EQUIVALENT, 0 ms] (557) AND (558) QDP (559) QDPOrderProof [EQUIVALENT, 0 ms] (560) QDP (561) DependencyGraphProof [EQUIVALENT, 0 ms] (562) QDP (563) QDPSizeChangeProof [EQUIVALENT, 0 ms] (564) YES (565) QDP (566) MRRProof [EQUIVALENT, 0 ms] (567) QDP (568) PisEmptyProof [EQUIVALENT, 0 ms] (569) YES (570) QDP (571) MNOCProof [EQUIVALENT, 0 ms] (572) QDP (573) InductionCalculusProof [EQUIVALENT, 0 ms] (574) QDP (575) QDP (576) QDPSizeChangeProof [EQUIVALENT, 0 ms] (577) YES (578) QDP (579) QDPSizeChangeProof [EQUIVALENT, 0 ms] (580) YES (581) QDP (582) QDPSizeChangeProof [EQUIVALENT, 0 ms] (583) YES (584) QDP (585) QDPSizeChangeProof [EQUIVALENT, 0 ms] (586) YES (587) QDP (588) QDPSizeChangeProof [EQUIVALENT, 0 ms] (589) YES (590) QDP (591) MNOCProof [EQUIVALENT, 0 ms] (592) QDP (593) InductionCalculusProof [EQUIVALENT, 0 ms] (594) QDP (595) QDP (596) MNOCProof [EQUIVALENT, 0 ms] (597) QDP (598) InductionCalculusProof [EQUIVALENT, 0 ms] (599) QDP (600) QDP (601) TransformationProof [EQUIVALENT, 0 ms] (602) QDP (603) UsableRulesProof [EQUIVALENT, 0 ms] (604) QDP (605) TransformationProof [EQUIVALENT, 0 ms] (606) QDP (607) DependencyGraphProof [EQUIVALENT, 0 ms] (608) AND (609) QDP (610) UsableRulesProof [EQUIVALENT, 0 ms] (611) QDP (612) QReductionProof [EQUIVALENT, 0 ms] (613) QDP (614) TransformationProof [EQUIVALENT, 0 ms] (615) QDP (616) TransformationProof [EQUIVALENT, 0 ms] (617) QDP (618) UsableRulesProof [EQUIVALENT, 0 ms] (619) QDP (620) QReductionProof [EQUIVALENT, 0 ms] (621) QDP (622) TransformationProof [EQUIVALENT, 0 ms] (623) QDP (624) TransformationProof [EQUIVALENT, 0 ms] (625) QDP (626) TransformationProof [EQUIVALENT, 0 ms] (627) QDP (628) TransformationProof [EQUIVALENT, 0 ms] (629) QDP (630) TransformationProof [EQUIVALENT, 0 ms] (631) QDP (632) TransformationProof [EQUIVALENT, 0 ms] (633) QDP (634) TransformationProof [EQUIVALENT, 0 ms] (635) QDP (636) TransformationProof [EQUIVALENT, 0 ms] (637) QDP (638) TransformationProof [EQUIVALENT, 0 ms] (639) QDP (640) TransformationProof [EQUIVALENT, 0 ms] (641) QDP (642) TransformationProof [EQUIVALENT, 0 ms] (643) QDP (644) TransformationProof [EQUIVALENT, 0 ms] (645) QDP (646) TransformationProof [EQUIVALENT, 0 ms] (647) QDP (648) TransformationProof [EQUIVALENT, 0 ms] (649) QDP (650) TransformationProof [EQUIVALENT, 0 ms] (651) QDP (652) DependencyGraphProof [EQUIVALENT, 0 ms] (653) AND (654) QDP (655) UsableRulesProof [EQUIVALENT, 0 ms] (656) QDP (657) TransformationProof [EQUIVALENT, 0 ms] (658) QDP (659) TransformationProof [EQUIVALENT, 0 ms] (660) QDP (661) UsableRulesProof [EQUIVALENT, 0 ms] (662) QDP (663) QReductionProof [EQUIVALENT, 0 ms] (664) QDP (665) TransformationProof [EQUIVALENT, 0 ms] (666) QDP (667) DependencyGraphProof [EQUIVALENT, 0 ms] (668) AND (669) QDP (670) UsableRulesProof [EQUIVALENT, 0 ms] (671) QDP (672) QReductionProof [EQUIVALENT, 0 ms] (673) QDP (674) TransformationProof [EQUIVALENT, 0 ms] (675) QDP (676) TransformationProof [EQUIVALENT, 0 ms] (677) QDP (678) UsableRulesProof [EQUIVALENT, 0 ms] (679) QDP (680) QReductionProof [EQUIVALENT, 0 ms] (681) QDP (682) TransformationProof [EQUIVALENT, 0 ms] (683) QDP (684) UsableRulesProof [EQUIVALENT, 0 ms] (685) QDP (686) QReductionProof [EQUIVALENT, 0 ms] (687) QDP (688) TransformationProof [EQUIVALENT, 0 ms] (689) QDP (690) TransformationProof [EQUIVALENT, 0 ms] (691) QDP (692) TransformationProof [EQUIVALENT, 0 ms] (693) QDP (694) DependencyGraphProof [EQUIVALENT, 0 ms] (695) QDP (696) InductionCalculusProof [EQUIVALENT, 0 ms] (697) QDP (698) QDP (699) UsableRulesProof [EQUIVALENT, 0 ms] (700) QDP (701) QReductionProof [EQUIVALENT, 0 ms] (702) QDP (703) TransformationProof [EQUIVALENT, 0 ms] (704) QDP (705) TransformationProof [EQUIVALENT, 0 ms] (706) QDP (707) UsableRulesProof [EQUIVALENT, 0 ms] (708) QDP (709) QReductionProof [EQUIVALENT, 0 ms] (710) QDP (711) TransformationProof [EQUIVALENT, 0 ms] (712) QDP (713) DependencyGraphProof [EQUIVALENT, 0 ms] (714) QDP (715) TransformationProof [EQUIVALENT, 0 ms] (716) QDP (717) TransformationProof [EQUIVALENT, 0 ms] (718) QDP (719) TransformationProof [EQUIVALENT, 0 ms] (720) QDP (721) DependencyGraphProof [EQUIVALENT, 0 ms] (722) AND (723) QDP (724) UsableRulesProof [EQUIVALENT, 0 ms] (725) QDP (726) TransformationProof [EQUIVALENT, 0 ms] (727) QDP (728) TransformationProof [EQUIVALENT, 0 ms] (729) QDP (730) UsableRulesProof [EQUIVALENT, 0 ms] (731) QDP (732) QReductionProof [EQUIVALENT, 0 ms] (733) QDP (734) TransformationProof [EQUIVALENT, 0 ms] (735) QDP (736) DependencyGraphProof [EQUIVALENT, 0 ms] (737) AND (738) QDP (739) UsableRulesProof [EQUIVALENT, 0 ms] (740) QDP (741) QReductionProof [EQUIVALENT, 0 ms] (742) QDP (743) TransformationProof [EQUIVALENT, 0 ms] (744) QDP (745) QDPSizeChangeProof [EQUIVALENT, 0 ms] (746) YES (747) QDP (748) UsableRulesProof [EQUIVALENT, 0 ms] (749) QDP (750) QReductionProof [EQUIVALENT, 0 ms] (751) QDP (752) TransformationProof [EQUIVALENT, 0 ms] (753) QDP (754) UsableRulesProof [EQUIVALENT, 0 ms] (755) QDP (756) QReductionProof [EQUIVALENT, 0 ms] (757) QDP (758) TransformationProof [EQUIVALENT, 0 ms] (759) QDP (760) UsableRulesProof [EQUIVALENT, 0 ms] (761) QDP (762) QReductionProof [EQUIVALENT, 0 ms] (763) QDP (764) TransformationProof [EQUIVALENT, 0 ms] (765) QDP (766) QDPSizeChangeProof [EQUIVALENT, 0 ms] (767) YES (768) QDP (769) TransformationProof [EQUIVALENT, 0 ms] (770) QDP (771) TransformationProof [EQUIVALENT, 0 ms] (772) QDP (773) TransformationProof [EQUIVALENT, 0 ms] (774) QDP (775) DependencyGraphProof [EQUIVALENT, 0 ms] (776) AND (777) QDP (778) UsableRulesProof [EQUIVALENT, 0 ms] (779) QDP (780) TransformationProof [EQUIVALENT, 0 ms] (781) QDP (782) TransformationProof [EQUIVALENT, 0 ms] (783) QDP (784) UsableRulesProof [EQUIVALENT, 0 ms] (785) QDP (786) QReductionProof [EQUIVALENT, 0 ms] (787) QDP (788) TransformationProof [EQUIVALENT, 0 ms] (789) QDP (790) DependencyGraphProof [EQUIVALENT, 0 ms] (791) AND (792) QDP (793) UsableRulesProof [EQUIVALENT, 0 ms] (794) QDP (795) QReductionProof [EQUIVALENT, 0 ms] (796) QDP (797) TransformationProof [EQUIVALENT, 0 ms] (798) QDP (799) QDPSizeChangeProof [EQUIVALENT, 0 ms] (800) YES (801) QDP (802) UsableRulesProof [EQUIVALENT, 0 ms] (803) QDP (804) QReductionProof [EQUIVALENT, 0 ms] (805) QDP (806) TransformationProof [EQUIVALENT, 0 ms] (807) QDP (808) UsableRulesProof [EQUIVALENT, 0 ms] (809) QDP (810) QReductionProof [EQUIVALENT, 0 ms] (811) QDP (812) TransformationProof [EQUIVALENT, 0 ms] (813) QDP (814) UsableRulesProof [EQUIVALENT, 0 ms] (815) QDP (816) QReductionProof [EQUIVALENT, 0 ms] (817) QDP (818) TransformationProof [EQUIVALENT, 0 ms] (819) QDP (820) QDPSizeChangeProof [EQUIVALENT, 0 ms] (821) YES (822) QDP (823) TransformationProof [EQUIVALENT, 0 ms] (824) QDP (825) TransformationProof [EQUIVALENT, 0 ms] (826) QDP (827) TransformationProof [EQUIVALENT, 0 ms] (828) QDP (829) DependencyGraphProof [EQUIVALENT, 0 ms] (830) AND (831) QDP (832) UsableRulesProof [EQUIVALENT, 0 ms] (833) QDP (834) TransformationProof [EQUIVALENT, 0 ms] (835) QDP (836) TransformationProof [EQUIVALENT, 0 ms] (837) QDP (838) UsableRulesProof [EQUIVALENT, 0 ms] (839) QDP (840) QReductionProof [EQUIVALENT, 0 ms] (841) QDP (842) TransformationProof [EQUIVALENT, 0 ms] (843) QDP (844) DependencyGraphProof [EQUIVALENT, 0 ms] (845) AND (846) QDP (847) UsableRulesProof [EQUIVALENT, 0 ms] (848) QDP (849) QReductionProof [EQUIVALENT, 0 ms] (850) QDP (851) TransformationProof [EQUIVALENT, 0 ms] (852) QDP (853) QDPSizeChangeProof [EQUIVALENT, 0 ms] (854) YES (855) QDP (856) UsableRulesProof [EQUIVALENT, 0 ms] (857) QDP (858) QReductionProof [EQUIVALENT, 0 ms] (859) QDP (860) TransformationProof [EQUIVALENT, 0 ms] (861) QDP (862) UsableRulesProof [EQUIVALENT, 0 ms] (863) QDP (864) QReductionProof [EQUIVALENT, 0 ms] (865) QDP (866) TransformationProof [EQUIVALENT, 0 ms] (867) QDP (868) UsableRulesProof [EQUIVALENT, 0 ms] (869) QDP (870) QReductionProof [EQUIVALENT, 0 ms] (871) QDP (872) TransformationProof [EQUIVALENT, 0 ms] (873) QDP (874) QDPSizeChangeProof [EQUIVALENT, 0 ms] (875) YES (876) QDP (877) TransformationProof [EQUIVALENT, 0 ms] (878) QDP (879) TransformationProof [EQUIVALENT, 0 ms] (880) QDP (881) TransformationProof [EQUIVALENT, 0 ms] (882) QDP (883) DependencyGraphProof [EQUIVALENT, 0 ms] (884) AND (885) QDP (886) UsableRulesProof [EQUIVALENT, 0 ms] (887) QDP (888) QReductionProof [EQUIVALENT, 0 ms] (889) QDP (890) TransformationProof [EQUIVALENT, 0 ms] (891) QDP (892) TransformationProof [EQUIVALENT, 0 ms] (893) QDP (894) UsableRulesProof [EQUIVALENT, 0 ms] (895) QDP (896) QReductionProof [EQUIVALENT, 0 ms] (897) QDP (898) TransformationProof [EQUIVALENT, 0 ms] (899) QDP (900) QDPSizeChangeProof [EQUIVALENT, 0 ms] (901) YES (902) QDP (903) TransformationProof [EQUIVALENT, 0 ms] (904) QDP (905) TransformationProof [EQUIVALENT, 0 ms] (906) QDP (907) QDPSizeChangeProof [EQUIVALENT, 0 ms] (908) YES (909) QDP (910) UsableRulesProof [EQUIVALENT, 0 ms] (911) QDP (912) TransformationProof [EQUIVALENT, 5 ms] (913) QDP (914) TransformationProof [EQUIVALENT, 0 ms] (915) QDP (916) UsableRulesProof [EQUIVALENT, 0 ms] (917) QDP (918) QReductionProof [EQUIVALENT, 0 ms] (919) QDP (920) TransformationProof [EQUIVALENT, 0 ms] (921) QDP (922) DependencyGraphProof [EQUIVALENT, 0 ms] (923) AND (924) QDP (925) UsableRulesProof [EQUIVALENT, 0 ms] (926) QDP (927) QReductionProof [EQUIVALENT, 0 ms] (928) QDP (929) TransformationProof [EQUIVALENT, 0 ms] (930) QDP (931) TransformationProof [EQUIVALENT, 0 ms] (932) QDP (933) UsableRulesProof [EQUIVALENT, 0 ms] (934) QDP (935) QReductionProof [EQUIVALENT, 0 ms] (936) QDP (937) TransformationProof [EQUIVALENT, 0 ms] (938) QDP (939) DependencyGraphProof [EQUIVALENT, 0 ms] (940) AND (941) QDP (942) UsableRulesProof [EQUIVALENT, 0 ms] (943) QDP (944) QReductionProof [EQUIVALENT, 0 ms] (945) QDP (946) TransformationProof [EQUIVALENT, 0 ms] (947) QDP (948) TransformationProof [EQUIVALENT, 0 ms] (949) QDP (950) UsableRulesProof [EQUIVALENT, 0 ms] (951) QDP (952) QReductionProof [EQUIVALENT, 0 ms] (953) QDP (954) TransformationProof [EQUIVALENT, 0 ms] (955) QDP (956) InductionCalculusProof [EQUIVALENT, 0 ms] (957) QDP (958) QDP (959) UsableRulesProof [EQUIVALENT, 0 ms] (960) QDP (961) QReductionProof [EQUIVALENT, 1 ms] (962) QDP (963) TransformationProof [EQUIVALENT, 0 ms] (964) QDP (965) TransformationProof [EQUIVALENT, 0 ms] (966) QDP (967) UsableRulesProof [EQUIVALENT, 0 ms] (968) QDP (969) QReductionProof [EQUIVALENT, 0 ms] (970) QDP (971) TransformationProof [EQUIVALENT, 0 ms] (972) QDP (973) DependencyGraphProof [EQUIVALENT, 0 ms] (974) AND (975) QDP (976) UsableRulesProof [EQUIVALENT, 0 ms] (977) QDP (978) QReductionProof [EQUIVALENT, 0 ms] (979) QDP (980) TransformationProof [EQUIVALENT, 0 ms] (981) QDP (982) UsableRulesProof [EQUIVALENT, 0 ms] (983) QDP (984) QReductionProof [EQUIVALENT, 0 ms] (985) QDP (986) TransformationProof [EQUIVALENT, 0 ms] (987) QDP (988) UsableRulesProof [EQUIVALENT, 0 ms] (989) QDP (990) QReductionProof [EQUIVALENT, 0 ms] (991) QDP (992) TransformationProof [EQUIVALENT, 0 ms] (993) QDP (994) NonTerminationLoopProof [COMPLETE, 0 ms] (995) NO (996) QDP (997) UsableRulesProof [EQUIVALENT, 0 ms] (998) QDP (999) QReductionProof [EQUIVALENT, 0 ms] (1000) QDP (1001) TransformationProof [EQUIVALENT, 0 ms] (1002) QDP (1003) UsableRulesProof [EQUIVALENT, 0 ms] (1004) QDP (1005) QReductionProof [EQUIVALENT, 0 ms] (1006) QDP (1007) TransformationProof [EQUIVALENT, 0 ms] (1008) QDP (1009) UsableRulesProof [EQUIVALENT, 0 ms] (1010) QDP (1011) QReductionProof [EQUIVALENT, 0 ms] (1012) QDP (1013) TransformationProof [EQUIVALENT, 0 ms] (1014) QDP (1015) UsableRulesProof [EQUIVALENT, 0 ms] (1016) QDP (1017) QReductionProof [EQUIVALENT, 0 ms] (1018) QDP (1019) TransformationProof [EQUIVALENT, 0 ms] (1020) QDP (1021) NonTerminationLoopProof [COMPLETE, 0 ms] (1022) NO (1023) QDP (1024) UsableRulesProof [EQUIVALENT, 0 ms] (1025) QDP (1026) QReductionProof [EQUIVALENT, 0 ms] (1027) QDP (1028) TransformationProof [EQUIVALENT, 0 ms] (1029) QDP (1030) UsableRulesProof [EQUIVALENT, 0 ms] (1031) QDP (1032) QReductionProof [EQUIVALENT, 0 ms] (1033) QDP (1034) TransformationProof [EQUIVALENT, 0 ms] (1035) QDP (1036) UsableRulesProof [EQUIVALENT, 0 ms] (1037) QDP (1038) QReductionProof [EQUIVALENT, 0 ms] (1039) QDP (1040) TransformationProof [EQUIVALENT, 0 ms] (1041) QDP (1042) NonTerminationLoopProof [COMPLETE, 0 ms] (1043) NO (1044) QDP (1045) UsableRulesProof [EQUIVALENT, 0 ms] (1046) QDP (1047) QReductionProof [EQUIVALENT, 0 ms] (1048) QDP (1049) TransformationProof [EQUIVALENT, 0 ms] (1050) QDP (1051) TransformationProof [EQUIVALENT, 0 ms] (1052) QDP (1053) UsableRulesProof [EQUIVALENT, 0 ms] (1054) QDP (1055) QReductionProof [EQUIVALENT, 0 ms] (1056) QDP (1057) TransformationProof [EQUIVALENT, 0 ms] (1058) QDP (1059) DependencyGraphProof [EQUIVALENT, 0 ms] (1060) QDP (1061) UsableRulesProof [EQUIVALENT, 0 ms] (1062) QDP (1063) TransformationProof [EQUIVALENT, 0 ms] (1064) QDP (1065) TransformationProof [EQUIVALENT, 0 ms] (1066) QDP (1067) UsableRulesProof [EQUIVALENT, 0 ms] (1068) QDP (1069) QReductionProof [EQUIVALENT, 0 ms] (1070) QDP (1071) TransformationProof [EQUIVALENT, 0 ms] (1072) QDP (1073) DependencyGraphProof [EQUIVALENT, 0 ms] (1074) AND (1075) QDP (1076) UsableRulesProof [EQUIVALENT, 0 ms] (1077) QDP (1078) QReductionProof [EQUIVALENT, 0 ms] (1079) QDP (1080) TransformationProof [EQUIVALENT, 0 ms] (1081) QDP (1082) MNOCProof [EQUIVALENT, 0 ms] (1083) QDP (1084) NonTerminationLoopProof [COMPLETE, 381 ms] (1085) NO (1086) QDP (1087) UsableRulesProof [EQUIVALENT, 0 ms] (1088) QDP (1089) QReductionProof [EQUIVALENT, 0 ms] (1090) QDP (1091) TransformationProof [EQUIVALENT, 0 ms] (1092) QDP (1093) UsableRulesProof [EQUIVALENT, 0 ms] (1094) QDP (1095) QReductionProof [EQUIVALENT, 0 ms] (1096) QDP (1097) TransformationProof [EQUIVALENT, 0 ms] (1098) QDP (1099) UsableRulesProof [EQUIVALENT, 0 ms] (1100) QDP (1101) QReductionProof [EQUIVALENT, 0 ms] (1102) QDP (1103) TransformationProof [EQUIVALENT, 0 ms] (1104) QDP (1105) NonTerminationLoopProof [COMPLETE, 0 ms] (1106) NO (1107) QDP (1108) UsableRulesProof [EQUIVALENT, 0 ms] (1109) QDP (1110) QReductionProof [EQUIVALENT, 0 ms] (1111) QDP (1112) TransformationProof [EQUIVALENT, 0 ms] (1113) QDP (1114) TransformationProof [EQUIVALENT, 0 ms] (1115) QDP (1116) UsableRulesProof [EQUIVALENT, 0 ms] (1117) QDP (1118) QReductionProof [EQUIVALENT, 0 ms] (1119) QDP (1120) TransformationProof [EQUIVALENT, 0 ms] (1121) QDP (1122) DependencyGraphProof [EQUIVALENT, 0 ms] (1123) AND (1124) QDP (1125) UsableRulesProof [EQUIVALENT, 0 ms] (1126) QDP (1127) QReductionProof [EQUIVALENT, 0 ms] (1128) QDP (1129) TransformationProof [EQUIVALENT, 0 ms] (1130) QDP (1131) TransformationProof [EQUIVALENT, 0 ms] (1132) QDP (1133) UsableRulesProof [EQUIVALENT, 0 ms] (1134) QDP (1135) QReductionProof [EQUIVALENT, 0 ms] (1136) QDP (1137) TransformationProof [EQUIVALENT, 0 ms] (1138) QDP (1139) DependencyGraphProof [EQUIVALENT, 0 ms] (1140) AND (1141) QDP (1142) UsableRulesProof [EQUIVALENT, 0 ms] (1143) QDP (1144) QReductionProof [EQUIVALENT, 0 ms] (1145) QDP (1146) TransformationProof [EQUIVALENT, 0 ms] (1147) QDP (1148) TransformationProof [EQUIVALENT, 0 ms] (1149) QDP (1150) UsableRulesProof [EQUIVALENT, 0 ms] (1151) QDP (1152) QReductionProof [EQUIVALENT, 0 ms] (1153) QDP (1154) TransformationProof [EQUIVALENT, 0 ms] (1155) QDP (1156) DependencyGraphProof [EQUIVALENT, 0 ms] (1157) AND (1158) QDP (1159) UsableRulesProof [EQUIVALENT, 0 ms] (1160) QDP (1161) QReductionProof [EQUIVALENT, 0 ms] (1162) QDP (1163) TransformationProof [EQUIVALENT, 0 ms] (1164) QDP (1165) TransformationProof [EQUIVALENT, 0 ms] (1166) QDP (1167) UsableRulesProof [EQUIVALENT, 0 ms] (1168) QDP (1169) QReductionProof [EQUIVALENT, 0 ms] (1170) QDP (1171) TransformationProof [EQUIVALENT, 0 ms] (1172) QDP (1173) InductionCalculusProof [EQUIVALENT, 0 ms] (1174) QDP (1175) QDP (1176) UsableRulesProof [EQUIVALENT, 0 ms] (1177) QDP (1178) QReductionProof [EQUIVALENT, 0 ms] (1179) QDP (1180) TransformationProof [EQUIVALENT, 0 ms] (1181) QDP (1182) TransformationProof [EQUIVALENT, 0 ms] (1183) QDP (1184) UsableRulesProof [EQUIVALENT, 0 ms] (1185) QDP (1186) QReductionProof [EQUIVALENT, 0 ms] (1187) QDP (1188) TransformationProof [EQUIVALENT, 0 ms] (1189) QDP (1190) DependencyGraphProof [EQUIVALENT, 0 ms] (1191) AND (1192) QDP (1193) UsableRulesProof [EQUIVALENT, 0 ms] (1194) QDP (1195) QReductionProof [EQUIVALENT, 0 ms] (1196) QDP (1197) TransformationProof [EQUIVALENT, 0 ms] (1198) QDP (1199) UsableRulesProof [EQUIVALENT, 0 ms] (1200) QDP (1201) QReductionProof [EQUIVALENT, 0 ms] (1202) QDP (1203) TransformationProof [EQUIVALENT, 0 ms] (1204) QDP (1205) UsableRulesProof [EQUIVALENT, 0 ms] (1206) QDP (1207) QReductionProof [EQUIVALENT, 0 ms] (1208) QDP (1209) TransformationProof [EQUIVALENT, 0 ms] (1210) QDP (1211) NonTerminationLoopProof [COMPLETE, 0 ms] (1212) NO (1213) QDP (1214) UsableRulesProof [EQUIVALENT, 0 ms] (1215) QDP (1216) QReductionProof [EQUIVALENT, 0 ms] (1217) QDP (1218) TransformationProof [EQUIVALENT, 0 ms] (1219) QDP (1220) UsableRulesProof [EQUIVALENT, 0 ms] (1221) QDP (1222) QReductionProof [EQUIVALENT, 0 ms] (1223) QDP (1224) TransformationProof [EQUIVALENT, 0 ms] (1225) QDP (1226) UsableRulesProof [EQUIVALENT, 0 ms] (1227) QDP (1228) QReductionProof [EQUIVALENT, 0 ms] (1229) QDP (1230) TransformationProof [EQUIVALENT, 0 ms] (1231) QDP (1232) UsableRulesProof [EQUIVALENT, 0 ms] (1233) QDP (1234) QReductionProof [EQUIVALENT, 0 ms] (1235) QDP (1236) TransformationProof [EQUIVALENT, 0 ms] (1237) QDP (1238) NonTerminationLoopProof [COMPLETE, 0 ms] (1239) NO (1240) QDP (1241) UsableRulesProof [EQUIVALENT, 0 ms] (1242) QDP (1243) QReductionProof [EQUIVALENT, 0 ms] (1244) QDP (1245) TransformationProof [EQUIVALENT, 0 ms] (1246) QDP (1247) UsableRulesProof [EQUIVALENT, 0 ms] (1248) QDP (1249) QReductionProof [EQUIVALENT, 0 ms] (1250) QDP (1251) TransformationProof [EQUIVALENT, 0 ms] (1252) QDP (1253) UsableRulesProof [EQUIVALENT, 0 ms] (1254) QDP (1255) QReductionProof [EQUIVALENT, 0 ms] (1256) QDP (1257) TransformationProof [EQUIVALENT, 0 ms] (1258) QDP (1259) NonTerminationLoopProof [COMPLETE, 0 ms] (1260) NO (1261) QDP (1262) UsableRulesProof [EQUIVALENT, 0 ms] (1263) QDP (1264) QReductionProof [EQUIVALENT, 0 ms] (1265) QDP (1266) TransformationProof [EQUIVALENT, 0 ms] (1267) QDP (1268) TransformationProof [EQUIVALENT, 0 ms] (1269) QDP (1270) UsableRulesProof [EQUIVALENT, 0 ms] (1271) QDP (1272) QReductionProof [EQUIVALENT, 0 ms] (1273) QDP (1274) TransformationProof [EQUIVALENT, 0 ms] (1275) QDP (1276) DependencyGraphProof [EQUIVALENT, 0 ms] (1277) QDP (1278) UsableRulesProof [EQUIVALENT, 0 ms] (1279) QDP (1280) TransformationProof [EQUIVALENT, 0 ms] (1281) QDP (1282) TransformationProof [EQUIVALENT, 0 ms] (1283) QDP (1284) UsableRulesProof [EQUIVALENT, 0 ms] (1285) QDP (1286) QReductionProof [EQUIVALENT, 0 ms] (1287) QDP (1288) TransformationProof [EQUIVALENT, 0 ms] (1289) QDP (1290) DependencyGraphProof [EQUIVALENT, 0 ms] (1291) AND (1292) QDP (1293) UsableRulesProof [EQUIVALENT, 0 ms] (1294) QDP (1295) QReductionProof [EQUIVALENT, 0 ms] (1296) QDP (1297) TransformationProof [EQUIVALENT, 0 ms] (1298) QDP (1299) MNOCProof [EQUIVALENT, 0 ms] (1300) QDP (1301) NonTerminationLoopProof [COMPLETE, 347 ms] (1302) NO (1303) QDP (1304) UsableRulesProof [EQUIVALENT, 0 ms] (1305) QDP (1306) QReductionProof [EQUIVALENT, 0 ms] (1307) QDP (1308) TransformationProof [EQUIVALENT, 0 ms] (1309) QDP (1310) UsableRulesProof [EQUIVALENT, 0 ms] (1311) QDP (1312) QReductionProof [EQUIVALENT, 0 ms] (1313) QDP (1314) TransformationProof [EQUIVALENT, 0 ms] (1315) QDP (1316) UsableRulesProof [EQUIVALENT, 0 ms] (1317) QDP (1318) QReductionProof [EQUIVALENT, 0 ms] (1319) QDP (1320) TransformationProof [EQUIVALENT, 0 ms] (1321) QDP (1322) NonTerminationLoopProof [COMPLETE, 0 ms] (1323) NO (1324) QDP (1325) UsableRulesProof [EQUIVALENT, 0 ms] (1326) QDP (1327) QReductionProof [EQUIVALENT, 0 ms] (1328) QDP (1329) TransformationProof [EQUIVALENT, 0 ms] (1330) QDP (1331) TransformationProof [EQUIVALENT, 0 ms] (1332) QDP (1333) UsableRulesProof [EQUIVALENT, 0 ms] (1334) QDP (1335) QReductionProof [EQUIVALENT, 0 ms] (1336) QDP (1337) TransformationProof [EQUIVALENT, 0 ms] (1338) QDP (1339) DependencyGraphProof [EQUIVALENT, 0 ms] (1340) AND (1341) QDP (1342) UsableRulesProof [EQUIVALENT, 0 ms] (1343) QDP (1344) QReductionProof [EQUIVALENT, 0 ms] (1345) QDP (1346) TransformationProof [EQUIVALENT, 0 ms] (1347) QDP (1348) TransformationProof [EQUIVALENT, 0 ms] (1349) QDP (1350) UsableRulesProof [EQUIVALENT, 0 ms] (1351) QDP (1352) QReductionProof [EQUIVALENT, 0 ms] (1353) QDP (1354) TransformationProof [EQUIVALENT, 0 ms] (1355) QDP (1356) UsableRulesProof [EQUIVALENT, 0 ms] (1357) QDP (1358) QReductionProof [EQUIVALENT, 0 ms] (1359) QDP (1360) TransformationProof [EQUIVALENT, 0 ms] (1361) QDP (1362) TransformationProof [EQUIVALENT, 0 ms] (1363) QDP (1364) TransformationProof [EQUIVALENT, 0 ms] (1365) QDP (1366) DependencyGraphProof [EQUIVALENT, 0 ms] (1367) QDP (1368) InductionCalculusProof [EQUIVALENT, 0 ms] (1369) QDP (1370) QDP (1371) UsableRulesProof [EQUIVALENT, 0 ms] (1372) QDP (1373) QReductionProof [EQUIVALENT, 0 ms] (1374) QDP (1375) TransformationProof [EQUIVALENT, 0 ms] (1376) QDP (1377) TransformationProof [EQUIVALENT, 0 ms] (1378) QDP (1379) UsableRulesProof [EQUIVALENT, 0 ms] (1380) QDP (1381) QReductionProof [EQUIVALENT, 0 ms] (1382) QDP (1383) TransformationProof [EQUIVALENT, 0 ms] (1384) QDP (1385) DependencyGraphProof [EQUIVALENT, 0 ms] (1386) QDP (1387) TransformationProof [EQUIVALENT, 0 ms] (1388) QDP (1389) TransformationProof [EQUIVALENT, 0 ms] (1390) QDP (1391) TransformationProof [EQUIVALENT, 0 ms] (1392) QDP (1393) DependencyGraphProof [EQUIVALENT, 0 ms] (1394) AND (1395) QDP (1396) UsableRulesProof [EQUIVALENT, 0 ms] (1397) QDP (1398) TransformationProof [EQUIVALENT, 0 ms] (1399) QDP (1400) TransformationProof [EQUIVALENT, 0 ms] (1401) QDP (1402) UsableRulesProof [EQUIVALENT, 0 ms] (1403) QDP (1404) QReductionProof [EQUIVALENT, 0 ms] (1405) QDP (1406) TransformationProof [EQUIVALENT, 0 ms] (1407) QDP (1408) DependencyGraphProof [EQUIVALENT, 0 ms] (1409) QDP (1410) UsableRulesProof [EQUIVALENT, 0 ms] (1411) QDP (1412) QReductionProof [EQUIVALENT, 0 ms] (1413) QDP (1414) TransformationProof [EQUIVALENT, 0 ms] (1415) QDP (1416) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1417) YES (1418) QDP (1419) TransformationProof [EQUIVALENT, 0 ms] (1420) QDP (1421) TransformationProof [EQUIVALENT, 0 ms] (1422) QDP (1423) TransformationProof [EQUIVALENT, 0 ms] (1424) QDP (1425) DependencyGraphProof [EQUIVALENT, 0 ms] (1426) AND (1427) QDP (1428) UsableRulesProof [EQUIVALENT, 0 ms] (1429) QDP (1430) TransformationProof [EQUIVALENT, 0 ms] (1431) QDP (1432) TransformationProof [EQUIVALENT, 0 ms] (1433) QDP (1434) UsableRulesProof [EQUIVALENT, 0 ms] (1435) QDP (1436) QReductionProof [EQUIVALENT, 0 ms] (1437) QDP (1438) TransformationProof [EQUIVALENT, 0 ms] (1439) QDP (1440) DependencyGraphProof [EQUIVALENT, 0 ms] (1441) QDP (1442) UsableRulesProof [EQUIVALENT, 0 ms] (1443) QDP (1444) QReductionProof [EQUIVALENT, 0 ms] (1445) QDP (1446) TransformationProof [EQUIVALENT, 0 ms] (1447) QDP (1448) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1449) YES (1450) QDP (1451) TransformationProof [EQUIVALENT, 0 ms] (1452) QDP (1453) TransformationProof [EQUIVALENT, 0 ms] (1454) QDP (1455) TransformationProof [EQUIVALENT, 0 ms] (1456) QDP (1457) DependencyGraphProof [EQUIVALENT, 0 ms] (1458) AND (1459) QDP (1460) UsableRulesProof [EQUIVALENT, 0 ms] (1461) QDP (1462) TransformationProof [EQUIVALENT, 0 ms] (1463) QDP (1464) TransformationProof [EQUIVALENT, 0 ms] (1465) QDP (1466) UsableRulesProof [EQUIVALENT, 0 ms] (1467) QDP (1468) QReductionProof [EQUIVALENT, 0 ms] (1469) QDP (1470) TransformationProof [EQUIVALENT, 0 ms] (1471) QDP (1472) DependencyGraphProof [EQUIVALENT, 0 ms] (1473) QDP (1474) UsableRulesProof [EQUIVALENT, 0 ms] (1475) QDP (1476) QReductionProof [EQUIVALENT, 0 ms] (1477) QDP (1478) TransformationProof [EQUIVALENT, 0 ms] (1479) QDP (1480) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1481) YES (1482) QDP (1483) TransformationProof [EQUIVALENT, 0 ms] (1484) QDP (1485) TransformationProof [EQUIVALENT, 0 ms] (1486) QDP (1487) TransformationProof [EQUIVALENT, 0 ms] (1488) QDP (1489) DependencyGraphProof [EQUIVALENT, 0 ms] (1490) AND (1491) QDP (1492) UsableRulesProof [EQUIVALENT, 0 ms] (1493) QDP (1494) QReductionProof [EQUIVALENT, 0 ms] (1495) QDP (1496) TransformationProof [EQUIVALENT, 0 ms] (1497) QDP (1498) TransformationProof [EQUIVALENT, 0 ms] (1499) QDP (1500) UsableRulesProof [EQUIVALENT, 0 ms] (1501) QDP (1502) QReductionProof [EQUIVALENT, 0 ms] (1503) QDP (1504) TransformationProof [EQUIVALENT, 0 ms] (1505) QDP (1506) QDPSizeChangeProof [EQUIVALENT, 1 ms] (1507) YES (1508) QDP (1509) TransformationProof [EQUIVALENT, 0 ms] (1510) QDP (1511) TransformationProof [EQUIVALENT, 0 ms] (1512) QDP (1513) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1514) YES (1515) QDP (1516) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1517) YES (1518) QDP (1519) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1520) YES (1521) QDP (1522) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1523) YES (1524) QDP (1525) TransformationProof [EQUIVALENT, 0 ms] (1526) QDP (1527) UsableRulesProof [EQUIVALENT, 0 ms] (1528) QDP (1529) TransformationProof [EQUIVALENT, 0 ms] (1530) QDP (1531) DependencyGraphProof [EQUIVALENT, 0 ms] (1532) AND (1533) QDP (1534) UsableRulesProof [EQUIVALENT, 0 ms] (1535) QDP (1536) QReductionProof [EQUIVALENT, 0 ms] (1537) QDP (1538) TransformationProof [EQUIVALENT, 5 ms] (1539) QDP (1540) TransformationProof [EQUIVALENT, 0 ms] (1541) QDP (1542) UsableRulesProof [EQUIVALENT, 0 ms] (1543) QDP (1544) QReductionProof [EQUIVALENT, 0 ms] (1545) QDP (1546) TransformationProof [EQUIVALENT, 0 ms] (1547) QDP (1548) TransformationProof [EQUIVALENT, 0 ms] (1549) QDP (1550) TransformationProof [EQUIVALENT, 0 ms] (1551) QDP (1552) TransformationProof [EQUIVALENT, 0 ms] (1553) QDP (1554) TransformationProof [EQUIVALENT, 0 ms] (1555) QDP (1556) TransformationProof [EQUIVALENT, 0 ms] (1557) QDP (1558) TransformationProof [EQUIVALENT, 0 ms] (1559) QDP (1560) TransformationProof [EQUIVALENT, 0 ms] (1561) QDP (1562) TransformationProof [EQUIVALENT, 0 ms] (1563) QDP (1564) TransformationProof [EQUIVALENT, 0 ms] (1565) QDP (1566) TransformationProof [EQUIVALENT, 0 ms] (1567) QDP (1568) TransformationProof [EQUIVALENT, 0 ms] (1569) QDP (1570) TransformationProof [EQUIVALENT, 0 ms] (1571) QDP (1572) TransformationProof [EQUIVALENT, 0 ms] (1573) QDP (1574) TransformationProof [EQUIVALENT, 0 ms] (1575) QDP (1576) DependencyGraphProof [EQUIVALENT, 0 ms] (1577) AND (1578) QDP (1579) TransformationProof [EQUIVALENT, 0 ms] (1580) QDP (1581) TransformationProof [EQUIVALENT, 0 ms] (1582) QDP (1583) TransformationProof [EQUIVALENT, 0 ms] (1584) QDP (1585) DependencyGraphProof [EQUIVALENT, 0 ms] (1586) AND (1587) QDP (1588) UsableRulesProof [EQUIVALENT, 0 ms] (1589) QDP (1590) QReductionProof [EQUIVALENT, 0 ms] (1591) QDP (1592) TransformationProof [EQUIVALENT, 0 ms] (1593) QDP (1594) TransformationProof [EQUIVALENT, 0 ms] (1595) QDP (1596) UsableRulesProof [EQUIVALENT, 0 ms] (1597) QDP (1598) QReductionProof [EQUIVALENT, 0 ms] (1599) QDP (1600) TransformationProof [EQUIVALENT, 0 ms] (1601) QDP (1602) UsableRulesProof [EQUIVALENT, 0 ms] (1603) QDP (1604) QReductionProof [EQUIVALENT, 0 ms] (1605) QDP (1606) TransformationProof [EQUIVALENT, 0 ms] (1607) QDP (1608) TransformationProof [EQUIVALENT, 0 ms] (1609) QDP (1610) TransformationProof [EQUIVALENT, 0 ms] (1611) QDP (1612) DependencyGraphProof [EQUIVALENT, 0 ms] (1613) QDP (1614) InductionCalculusProof [EQUIVALENT, 0 ms] (1615) QDP (1616) QDP (1617) UsableRulesProof [EQUIVALENT, 0 ms] (1618) QDP (1619) QReductionProof [EQUIVALENT, 0 ms] (1620) QDP (1621) TransformationProof [EQUIVALENT, 0 ms] (1622) QDP (1623) TransformationProof [EQUIVALENT, 0 ms] (1624) QDP (1625) UsableRulesProof [EQUIVALENT, 0 ms] (1626) QDP (1627) QReductionProof [EQUIVALENT, 0 ms] (1628) QDP (1629) TransformationProof [EQUIVALENT, 0 ms] (1630) QDP (1631) DependencyGraphProof [EQUIVALENT, 0 ms] (1632) QDP (1633) TransformationProof [EQUIVALENT, 0 ms] (1634) QDP (1635) TransformationProof [EQUIVALENT, 0 ms] (1636) QDP (1637) TransformationProof [EQUIVALENT, 0 ms] (1638) QDP (1639) DependencyGraphProof [EQUIVALENT, 0 ms] (1640) AND (1641) QDP (1642) UsableRulesProof [EQUIVALENT, 0 ms] (1643) QDP (1644) TransformationProof [EQUIVALENT, 0 ms] (1645) QDP (1646) TransformationProof [EQUIVALENT, 0 ms] (1647) QDP (1648) UsableRulesProof [EQUIVALENT, 0 ms] (1649) QDP (1650) QReductionProof [EQUIVALENT, 0 ms] (1651) QDP (1652) TransformationProof [EQUIVALENT, 0 ms] (1653) QDP (1654) DependencyGraphProof [EQUIVALENT, 0 ms] (1655) QDP (1656) UsableRulesProof [EQUIVALENT, 0 ms] (1657) QDP (1658) QReductionProof [EQUIVALENT, 0 ms] (1659) QDP (1660) TransformationProof [EQUIVALENT, 0 ms] (1661) QDP (1662) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1663) YES (1664) QDP (1665) TransformationProof [EQUIVALENT, 0 ms] (1666) QDP (1667) TransformationProof [EQUIVALENT, 0 ms] (1668) QDP (1669) TransformationProof [EQUIVALENT, 0 ms] (1670) QDP (1671) DependencyGraphProof [EQUIVALENT, 0 ms] (1672) AND (1673) QDP (1674) UsableRulesProof [EQUIVALENT, 0 ms] (1675) QDP (1676) TransformationProof [EQUIVALENT, 0 ms] (1677) QDP (1678) TransformationProof [EQUIVALENT, 0 ms] (1679) QDP (1680) UsableRulesProof [EQUIVALENT, 0 ms] (1681) QDP (1682) QReductionProof [EQUIVALENT, 0 ms] (1683) QDP (1684) TransformationProof [EQUIVALENT, 0 ms] (1685) QDP (1686) DependencyGraphProof [EQUIVALENT, 0 ms] (1687) QDP (1688) UsableRulesProof [EQUIVALENT, 0 ms] (1689) QDP (1690) QReductionProof [EQUIVALENT, 0 ms] (1691) QDP (1692) TransformationProof [EQUIVALENT, 0 ms] (1693) QDP (1694) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1695) YES (1696) QDP (1697) TransformationProof [EQUIVALENT, 0 ms] (1698) QDP (1699) TransformationProof [EQUIVALENT, 0 ms] (1700) QDP (1701) TransformationProof [EQUIVALENT, 0 ms] (1702) QDP (1703) DependencyGraphProof [EQUIVALENT, 0 ms] (1704) AND (1705) QDP (1706) UsableRulesProof [EQUIVALENT, 0 ms] (1707) QDP (1708) TransformationProof [EQUIVALENT, 0 ms] (1709) QDP (1710) TransformationProof [EQUIVALENT, 0 ms] (1711) QDP (1712) UsableRulesProof [EQUIVALENT, 0 ms] (1713) QDP (1714) QReductionProof [EQUIVALENT, 0 ms] (1715) QDP (1716) TransformationProof [EQUIVALENT, 0 ms] (1717) QDP (1718) DependencyGraphProof [EQUIVALENT, 0 ms] (1719) QDP (1720) UsableRulesProof [EQUIVALENT, 0 ms] (1721) QDP (1722) QReductionProof [EQUIVALENT, 0 ms] (1723) QDP (1724) TransformationProof [EQUIVALENT, 0 ms] (1725) QDP (1726) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1727) YES (1728) QDP (1729) TransformationProof [EQUIVALENT, 0 ms] (1730) QDP (1731) TransformationProof [EQUIVALENT, 0 ms] (1732) QDP (1733) TransformationProof [EQUIVALENT, 0 ms] (1734) QDP (1735) DependencyGraphProof [EQUIVALENT, 0 ms] (1736) AND (1737) QDP (1738) UsableRulesProof [EQUIVALENT, 0 ms] (1739) QDP (1740) QReductionProof [EQUIVALENT, 0 ms] (1741) QDP (1742) TransformationProof [EQUIVALENT, 0 ms] (1743) QDP (1744) TransformationProof [EQUIVALENT, 0 ms] (1745) QDP (1746) UsableRulesProof [EQUIVALENT, 0 ms] (1747) QDP (1748) QReductionProof [EQUIVALENT, 0 ms] (1749) QDP (1750) TransformationProof [EQUIVALENT, 0 ms] (1751) QDP (1752) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1753) YES (1754) QDP (1755) TransformationProof [EQUIVALENT, 0 ms] (1756) QDP (1757) TransformationProof [EQUIVALENT, 0 ms] (1758) QDP (1759) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1760) YES (1761) QDP (1762) TransformationProof [EQUIVALENT, 0 ms] (1763) QDP (1764) TransformationProof [EQUIVALENT, 0 ms] (1765) QDP (1766) TransformationProof [EQUIVALENT, 0 ms] (1767) QDP (1768) DependencyGraphProof [EQUIVALENT, 0 ms] (1769) AND (1770) QDP (1771) UsableRulesProof [EQUIVALENT, 0 ms] (1772) QDP (1773) QReductionProof [EQUIVALENT, 0 ms] (1774) QDP (1775) TransformationProof [EQUIVALENT, 0 ms] (1776) QDP (1777) TransformationProof [EQUIVALENT, 0 ms] (1778) QDP (1779) UsableRulesProof [EQUIVALENT, 0 ms] (1780) QDP (1781) QReductionProof [EQUIVALENT, 0 ms] (1782) QDP (1783) TransformationProof [EQUIVALENT, 0 ms] (1784) QDP (1785) DependencyGraphProof [EQUIVALENT, 0 ms] (1786) AND (1787) QDP (1788) UsableRulesProof [EQUIVALENT, 0 ms] (1789) QDP (1790) QReductionProof [EQUIVALENT, 0 ms] (1791) QDP (1792) TransformationProof [EQUIVALENT, 0 ms] (1793) QDP (1794) TransformationProof [EQUIVALENT, 0 ms] (1795) QDP (1796) UsableRulesProof [EQUIVALENT, 0 ms] (1797) QDP (1798) QReductionProof [EQUIVALENT, 0 ms] (1799) QDP (1800) TransformationProof [EQUIVALENT, 0 ms] (1801) QDP (1802) NonTerminationLoopProof [COMPLETE, 1047 ms] (1803) NO (1804) QDP (1805) UsableRulesProof [EQUIVALENT, 0 ms] (1806) QDP (1807) QReductionProof [EQUIVALENT, 0 ms] (1808) QDP (1809) TransformationProof [EQUIVALENT, 0 ms] (1810) QDP (1811) TransformationProof [EQUIVALENT, 0 ms] (1812) QDP (1813) UsableRulesProof [EQUIVALENT, 0 ms] (1814) QDP (1815) QReductionProof [EQUIVALENT, 0 ms] (1816) QDP (1817) TransformationProof [EQUIVALENT, 0 ms] (1818) QDP (1819) DependencyGraphProof [EQUIVALENT, 0 ms] (1820) AND (1821) QDP (1822) UsableRulesProof [EQUIVALENT, 0 ms] (1823) QDP (1824) QReductionProof [EQUIVALENT, 0 ms] (1825) QDP (1826) TransformationProof [EQUIVALENT, 0 ms] (1827) QDP (1828) UsableRulesProof [EQUIVALENT, 0 ms] (1829) QDP (1830) QReductionProof [EQUIVALENT, 0 ms] (1831) QDP (1832) TransformationProof [EQUIVALENT, 0 ms] (1833) QDP (1834) UsableRulesProof [EQUIVALENT, 0 ms] (1835) QDP (1836) QReductionProof [EQUIVALENT, 0 ms] (1837) QDP (1838) TransformationProof [EQUIVALENT, 0 ms] (1839) QDP (1840) NonTerminationLoopProof [COMPLETE, 0 ms] (1841) NO (1842) QDP (1843) UsableRulesProof [EQUIVALENT, 0 ms] (1844) QDP (1845) QReductionProof [EQUIVALENT, 0 ms] (1846) QDP (1847) TransformationProof [EQUIVALENT, 0 ms] (1848) QDP (1849) UsableRulesProof [EQUIVALENT, 0 ms] (1850) QDP (1851) QReductionProof [EQUIVALENT, 0 ms] (1852) QDP (1853) TransformationProof [EQUIVALENT, 0 ms] (1854) QDP (1855) UsableRulesProof [EQUIVALENT, 0 ms] (1856) QDP (1857) QReductionProof [EQUIVALENT, 0 ms] (1858) QDP (1859) TransformationProof [EQUIVALENT, 0 ms] (1860) QDP (1861) NonTerminationLoopProof [COMPLETE, 0 ms] (1862) NO (1863) QDP (1864) UsableRulesProof [EQUIVALENT, 0 ms] (1865) QDP (1866) QReductionProof [EQUIVALENT, 0 ms] (1867) QDP (1868) TransformationProof [EQUIVALENT, 0 ms] (1869) QDP (1870) UsableRulesProof [EQUIVALENT, 0 ms] (1871) QDP (1872) QReductionProof [EQUIVALENT, 0 ms] (1873) QDP (1874) TransformationProof [EQUIVALENT, 0 ms] (1875) QDP (1876) UsableRulesProof [EQUIVALENT, 0 ms] (1877) QDP (1878) QReductionProof [EQUIVALENT, 0 ms] (1879) QDP (1880) TransformationProof [EQUIVALENT, 0 ms] (1881) QDP (1882) NonTerminationLoopProof [COMPLETE, 0 ms] (1883) NO (1884) QDP (1885) UsableRulesProof [EQUIVALENT, 0 ms] (1886) QDP (1887) QReductionProof [EQUIVALENT, 0 ms] (1888) QDP (1889) TransformationProof [EQUIVALENT, 0 ms] (1890) QDP (1891) TransformationProof [EQUIVALENT, 0 ms] (1892) QDP (1893) UsableRulesProof [EQUIVALENT, 0 ms] (1894) QDP (1895) QReductionProof [EQUIVALENT, 0 ms] (1896) QDP (1897) TransformationProof [EQUIVALENT, 0 ms] (1898) QDP (1899) DependencyGraphProof [EQUIVALENT, 0 ms] (1900) AND (1901) QDP (1902) UsableRulesProof [EQUIVALENT, 0 ms] (1903) QDP (1904) TransformationProof [EQUIVALENT, 0 ms] (1905) QDP (1906) TransformationProof [EQUIVALENT, 0 ms] (1907) QDP (1908) UsableRulesProof [EQUIVALENT, 0 ms] (1909) QDP (1910) QReductionProof [EQUIVALENT, 0 ms] (1911) QDP (1912) TransformationProof [EQUIVALENT, 0 ms] (1913) QDP (1914) DependencyGraphProof [EQUIVALENT, 0 ms] (1915) QDP (1916) UsableRulesProof [EQUIVALENT, 0 ms] (1917) QDP (1918) QReductionProof [EQUIVALENT, 0 ms] (1919) QDP (1920) TransformationProof [EQUIVALENT, 0 ms] (1921) QDP (1922) MNOCProof [EQUIVALENT, 0 ms] (1923) QDP (1924) InductionCalculusProof [EQUIVALENT, 0 ms] (1925) QDP (1926) QDP (1927) UsableRulesProof [EQUIVALENT, 0 ms] (1928) QDP (1929) TransformationProof [EQUIVALENT, 0 ms] (1930) QDP (1931) TransformationProof [EQUIVALENT, 0 ms] (1932) QDP (1933) UsableRulesProof [EQUIVALENT, 0 ms] (1934) QDP (1935) QReductionProof [EQUIVALENT, 0 ms] (1936) QDP (1937) TransformationProof [EQUIVALENT, 0 ms] (1938) QDP (1939) DependencyGraphProof [EQUIVALENT, 0 ms] (1940) AND (1941) QDP (1942) UsableRulesProof [EQUIVALENT, 0 ms] (1943) QDP (1944) QReductionProof [EQUIVALENT, 0 ms] (1945) QDP (1946) TransformationProof [EQUIVALENT, 0 ms] (1947) QDP (1948) UsableRulesProof [EQUIVALENT, 0 ms] (1949) QDP (1950) QReductionProof [EQUIVALENT, 0 ms] (1951) QDP (1952) TransformationProof [EQUIVALENT, 0 ms] (1953) QDP (1954) UsableRulesProof [EQUIVALENT, 0 ms] (1955) QDP (1956) QReductionProof [EQUIVALENT, 0 ms] (1957) QDP (1958) TransformationProof [EQUIVALENT, 0 ms] (1959) QDP (1960) NonTerminationLoopProof [COMPLETE, 0 ms] (1961) NO (1962) QDP (1963) UsableRulesProof [EQUIVALENT, 0 ms] (1964) QDP (1965) QReductionProof [EQUIVALENT, 0 ms] (1966) QDP (1967) TransformationProof [EQUIVALENT, 0 ms] (1968) QDP (1969) UsableRulesProof [EQUIVALENT, 0 ms] (1970) QDP (1971) QReductionProof [EQUIVALENT, 0 ms] (1972) QDP (1973) TransformationProof [EQUIVALENT, 0 ms] (1974) QDP (1975) UsableRulesProof [EQUIVALENT, 0 ms] (1976) QDP (1977) QReductionProof [EQUIVALENT, 0 ms] (1978) QDP (1979) TransformationProof [EQUIVALENT, 0 ms] (1980) QDP (1981) UsableRulesProof [EQUIVALENT, 0 ms] (1982) QDP (1983) QReductionProof [EQUIVALENT, 0 ms] (1984) QDP (1985) TransformationProof [EQUIVALENT, 0 ms] (1986) QDP (1987) NonTerminationLoopProof [COMPLETE, 0 ms] (1988) NO (1989) QDP (1990) UsableRulesProof [EQUIVALENT, 0 ms] (1991) QDP (1992) QReductionProof [EQUIVALENT, 0 ms] (1993) QDP (1994) TransformationProof [EQUIVALENT, 0 ms] (1995) QDP (1996) UsableRulesProof [EQUIVALENT, 0 ms] (1997) QDP (1998) QReductionProof [EQUIVALENT, 0 ms] (1999) QDP (2000) TransformationProof [EQUIVALENT, 0 ms] (2001) QDP (2002) UsableRulesProof [EQUIVALENT, 0 ms] (2003) QDP (2004) QReductionProof [EQUIVALENT, 0 ms] (2005) QDP (2006) TransformationProof [EQUIVALENT, 0 ms] (2007) QDP (2008) NonTerminationLoopProof [COMPLETE, 0 ms] (2009) NO (2010) QDP (2011) UsableRulesProof [EQUIVALENT, 0 ms] (2012) QDP (2013) QReductionProof [EQUIVALENT, 0 ms] (2014) QDP (2015) TransformationProof [EQUIVALENT, 4 ms] (2016) QDP (2017) TransformationProof [EQUIVALENT, 0 ms] (2018) QDP (2019) UsableRulesProof [EQUIVALENT, 0 ms] (2020) QDP (2021) QReductionProof [EQUIVALENT, 0 ms] (2022) QDP (2023) TransformationProof [EQUIVALENT, 0 ms] (2024) QDP (2025) DependencyGraphProof [EQUIVALENT, 0 ms] (2026) AND (2027) QDP (2028) UsableRulesProof [EQUIVALENT, 0 ms] (2029) QDP (2030) TransformationProof [EQUIVALENT, 0 ms] (2031) QDP (2032) TransformationProof [EQUIVALENT, 0 ms] (2033) QDP (2034) UsableRulesProof [EQUIVALENT, 0 ms] (2035) QDP (2036) QReductionProof [EQUIVALENT, 0 ms] (2037) QDP (2038) TransformationProof [EQUIVALENT, 0 ms] (2039) QDP (2040) DependencyGraphProof [EQUIVALENT, 0 ms] (2041) AND (2042) QDP (2043) UsableRulesProof [EQUIVALENT, 0 ms] (2044) QDP (2045) QReductionProof [EQUIVALENT, 0 ms] (2046) QDP (2047) TransformationProof [EQUIVALENT, 0 ms] (2048) QDP (2049) TransformationProof [EQUIVALENT, 0 ms] (2050) QDP (2051) UsableRulesProof [EQUIVALENT, 0 ms] (2052) QDP (2053) QReductionProof [EQUIVALENT, 0 ms] (2054) QDP (2055) TransformationProof [EQUIVALENT, 0 ms] (2056) QDP (2057) DependencyGraphProof [EQUIVALENT, 0 ms] (2058) AND (2059) QDP (2060) UsableRulesProof [EQUIVALENT, 0 ms] (2061) QDP (2062) QReductionProof [EQUIVALENT, 0 ms] (2063) QDP (2064) TransformationProof [EQUIVALENT, 0 ms] (2065) QDP (2066) TransformationProof [EQUIVALENT, 0 ms] (2067) QDP (2068) UsableRulesProof [EQUIVALENT, 0 ms] (2069) QDP (2070) QReductionProof [EQUIVALENT, 0 ms] (2071) QDP (2072) TransformationProof [EQUIVALENT, 0 ms] (2073) QDP (2074) InductionCalculusProof [EQUIVALENT, 0 ms] (2075) QDP (2076) QDP (2077) UsableRulesProof [EQUIVALENT, 0 ms] (2078) QDP (2079) QReductionProof [EQUIVALENT, 0 ms] (2080) QDP (2081) TransformationProof [EQUIVALENT, 0 ms] (2082) QDP (2083) TransformationProof [EQUIVALENT, 0 ms] (2084) QDP (2085) UsableRulesProof [EQUIVALENT, 0 ms] (2086) QDP (2087) QReductionProof [EQUIVALENT, 0 ms] (2088) QDP (2089) TransformationProof [EQUIVALENT, 0 ms] (2090) QDP (2091) DependencyGraphProof [EQUIVALENT, 0 ms] (2092) AND (2093) QDP (2094) UsableRulesProof [EQUIVALENT, 0 ms] (2095) QDP (2096) QReductionProof [EQUIVALENT, 0 ms] (2097) QDP (2098) TransformationProof [EQUIVALENT, 0 ms] (2099) QDP (2100) UsableRulesProof [EQUIVALENT, 0 ms] (2101) QDP (2102) QReductionProof [EQUIVALENT, 0 ms] (2103) QDP (2104) TransformationProof [EQUIVALENT, 0 ms] (2105) QDP (2106) UsableRulesProof [EQUIVALENT, 0 ms] (2107) QDP (2108) QReductionProof [EQUIVALENT, 0 ms] (2109) QDP (2110) TransformationProof [EQUIVALENT, 0 ms] (2111) QDP (2112) NonTerminationLoopProof [COMPLETE, 0 ms] (2113) NO (2114) QDP (2115) UsableRulesProof [EQUIVALENT, 0 ms] (2116) QDP (2117) QReductionProof [EQUIVALENT, 0 ms] (2118) QDP (2119) TransformationProof [EQUIVALENT, 0 ms] (2120) QDP (2121) UsableRulesProof [EQUIVALENT, 0 ms] (2122) QDP (2123) QReductionProof [EQUIVALENT, 0 ms] (2124) QDP (2125) TransformationProof [EQUIVALENT, 0 ms] (2126) QDP (2127) UsableRulesProof [EQUIVALENT, 0 ms] (2128) QDP (2129) QReductionProof [EQUIVALENT, 0 ms] (2130) QDP (2131) TransformationProof [EQUIVALENT, 0 ms] (2132) QDP (2133) UsableRulesProof [EQUIVALENT, 0 ms] (2134) QDP (2135) QReductionProof [EQUIVALENT, 0 ms] (2136) QDP (2137) TransformationProof [EQUIVALENT, 0 ms] (2138) QDP (2139) NonTerminationLoopProof [COMPLETE, 0 ms] (2140) NO (2141) QDP (2142) UsableRulesProof [EQUIVALENT, 0 ms] (2143) QDP (2144) QReductionProof [EQUIVALENT, 0 ms] (2145) QDP (2146) TransformationProof [EQUIVALENT, 0 ms] (2147) QDP (2148) UsableRulesProof [EQUIVALENT, 0 ms] (2149) QDP (2150) QReductionProof [EQUIVALENT, 0 ms] (2151) QDP (2152) TransformationProof [EQUIVALENT, 0 ms] (2153) QDP (2154) UsableRulesProof [EQUIVALENT, 0 ms] (2155) QDP (2156) QReductionProof [EQUIVALENT, 0 ms] (2157) QDP (2158) TransformationProof [EQUIVALENT, 0 ms] (2159) QDP (2160) NonTerminationLoopProof [COMPLETE, 0 ms] (2161) NO (2162) QDP (2163) UsableRulesProof [EQUIVALENT, 0 ms] (2164) QDP (2165) QReductionProof [EQUIVALENT, 0 ms] (2166) QDP (2167) TransformationProof [EQUIVALENT, 0 ms] (2168) QDP (2169) TransformationProof [EQUIVALENT, 0 ms] (2170) QDP (2171) UsableRulesProof [EQUIVALENT, 0 ms] (2172) QDP (2173) QReductionProof [EQUIVALENT, 0 ms] (2174) QDP (2175) TransformationProof [EQUIVALENT, 0 ms] (2176) QDP (2177) DependencyGraphProof [EQUIVALENT, 0 ms] (2178) QDP (2179) UsableRulesProof [EQUIVALENT, 0 ms] (2180) QDP (2181) TransformationProof [EQUIVALENT, 0 ms] (2182) QDP (2183) TransformationProof [EQUIVALENT, 0 ms] (2184) QDP (2185) UsableRulesProof [EQUIVALENT, 0 ms] (2186) QDP (2187) QReductionProof [EQUIVALENT, 0 ms] (2188) QDP (2189) TransformationProof [EQUIVALENT, 0 ms] (2190) QDP (2191) DependencyGraphProof [EQUIVALENT, 0 ms] (2192) AND (2193) QDP (2194) UsableRulesProof [EQUIVALENT, 0 ms] (2195) QDP (2196) QReductionProof [EQUIVALENT, 0 ms] (2197) QDP (2198) TransformationProof [EQUIVALENT, 0 ms] (2199) QDP (2200) MNOCProof [EQUIVALENT, 0 ms] (2201) QDP (2202) NonTerminationLoopProof [COMPLETE, 391 ms] (2203) NO (2204) QDP (2205) UsableRulesProof [EQUIVALENT, 0 ms] (2206) QDP (2207) QReductionProof [EQUIVALENT, 0 ms] (2208) QDP (2209) TransformationProof [EQUIVALENT, 0 ms] (2210) QDP (2211) UsableRulesProof [EQUIVALENT, 0 ms] (2212) QDP (2213) QReductionProof [EQUIVALENT, 0 ms] (2214) QDP (2215) TransformationProof [EQUIVALENT, 0 ms] (2216) QDP (2217) UsableRulesProof [EQUIVALENT, 0 ms] (2218) QDP (2219) QReductionProof [EQUIVALENT, 0 ms] (2220) QDP (2221) TransformationProof [EQUIVALENT, 0 ms] (2222) QDP (2223) NonTerminationLoopProof [COMPLETE, 0 ms] (2224) NO (2225) QDP (2226) UsableRulesProof [EQUIVALENT, 0 ms] (2227) QDP (2228) TransformationProof [EQUIVALENT, 0 ms] (2229) QDP (2230) TransformationProof [EQUIVALENT, 0 ms] (2231) QDP (2232) UsableRulesProof [EQUIVALENT, 0 ms] (2233) QDP (2234) QReductionProof [EQUIVALENT, 0 ms] (2235) QDP (2236) TransformationProof [EQUIVALENT, 0 ms] (2237) QDP (2238) DependencyGraphProof [EQUIVALENT, 0 ms] (2239) AND (2240) QDP (2241) UsableRulesProof [EQUIVALENT, 0 ms] (2242) QDP (2243) QReductionProof [EQUIVALENT, 0 ms] (2244) QDP (2245) TransformationProof [EQUIVALENT, 0 ms] (2246) QDP (2247) TransformationProof [EQUIVALENT, 0 ms] (2248) QDP (2249) UsableRulesProof [EQUIVALENT, 0 ms] (2250) QDP (2251) QReductionProof [EQUIVALENT, 0 ms] (2252) QDP (2253) TransformationProof [EQUIVALENT, 0 ms] (2254) QDP (2255) UsableRulesProof [EQUIVALENT, 0 ms] (2256) QDP (2257) QReductionProof [EQUIVALENT, 0 ms] (2258) QDP (2259) TransformationProof [EQUIVALENT, 0 ms] (2260) QDP (2261) TransformationProof [EQUIVALENT, 0 ms] (2262) QDP (2263) TransformationProof [EQUIVALENT, 0 ms] (2264) QDP (2265) DependencyGraphProof [EQUIVALENT, 0 ms] (2266) QDP (2267) InductionCalculusProof [EQUIVALENT, 0 ms] (2268) QDP (2269) QDP (2270) UsableRulesProof [EQUIVALENT, 0 ms] (2271) QDP (2272) QReductionProof [EQUIVALENT, 0 ms] (2273) QDP (2274) TransformationProof [EQUIVALENT, 0 ms] (2275) QDP (2276) TransformationProof [EQUIVALENT, 0 ms] (2277) QDP (2278) UsableRulesProof [EQUIVALENT, 0 ms] (2279) QDP (2280) QReductionProof [EQUIVALENT, 0 ms] (2281) QDP (2282) TransformationProof [EQUIVALENT, 0 ms] (2283) QDP (2284) DependencyGraphProof [EQUIVALENT, 0 ms] (2285) QDP (2286) TransformationProof [EQUIVALENT, 0 ms] (2287) QDP (2288) TransformationProof [EQUIVALENT, 0 ms] (2289) QDP (2290) TransformationProof [EQUIVALENT, 0 ms] (2291) QDP (2292) DependencyGraphProof [EQUIVALENT, 0 ms] (2293) AND (2294) QDP (2295) UsableRulesProof [EQUIVALENT, 0 ms] (2296) QDP (2297) TransformationProof [EQUIVALENT, 0 ms] (2298) QDP (2299) TransformationProof [EQUIVALENT, 0 ms] (2300) QDP (2301) UsableRulesProof [EQUIVALENT, 0 ms] (2302) QDP (2303) QReductionProof [EQUIVALENT, 0 ms] (2304) QDP (2305) TransformationProof [EQUIVALENT, 0 ms] (2306) QDP (2307) DependencyGraphProof [EQUIVALENT, 0 ms] (2308) AND (2309) QDP (2310) UsableRulesProof [EQUIVALENT, 0 ms] (2311) QDP (2312) QReductionProof [EQUIVALENT, 0 ms] (2313) QDP (2314) TransformationProof [EQUIVALENT, 0 ms] (2315) QDP (2316) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2317) YES (2318) QDP (2319) UsableRulesProof [EQUIVALENT, 0 ms] (2320) QDP (2321) QReductionProof [EQUIVALENT, 0 ms] (2322) QDP (2323) TransformationProof [EQUIVALENT, 0 ms] (2324) QDP (2325) UsableRulesProof [EQUIVALENT, 0 ms] (2326) QDP (2327) QReductionProof [EQUIVALENT, 0 ms] (2328) QDP (2329) TransformationProof [EQUIVALENT, 0 ms] (2330) QDP (2331) UsableRulesProof [EQUIVALENT, 0 ms] (2332) QDP (2333) QReductionProof [EQUIVALENT, 0 ms] (2334) QDP (2335) TransformationProof [EQUIVALENT, 0 ms] (2336) QDP (2337) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2338) YES (2339) QDP (2340) TransformationProof [EQUIVALENT, 0 ms] (2341) QDP (2342) TransformationProof [EQUIVALENT, 0 ms] (2343) QDP (2344) TransformationProof [EQUIVALENT, 0 ms] (2345) QDP (2346) DependencyGraphProof [EQUIVALENT, 0 ms] (2347) AND (2348) QDP (2349) UsableRulesProof [EQUIVALENT, 0 ms] (2350) QDP (2351) TransformationProof [EQUIVALENT, 0 ms] (2352) QDP (2353) TransformationProof [EQUIVALENT, 0 ms] (2354) QDP (2355) UsableRulesProof [EQUIVALENT, 0 ms] (2356) QDP (2357) QReductionProof [EQUIVALENT, 0 ms] (2358) QDP (2359) TransformationProof [EQUIVALENT, 0 ms] (2360) QDP (2361) DependencyGraphProof [EQUIVALENT, 0 ms] (2362) AND (2363) QDP (2364) UsableRulesProof [EQUIVALENT, 0 ms] (2365) QDP (2366) QReductionProof [EQUIVALENT, 0 ms] (2367) QDP (2368) TransformationProof [EQUIVALENT, 0 ms] (2369) QDP (2370) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2371) YES (2372) QDP (2373) UsableRulesProof [EQUIVALENT, 0 ms] (2374) QDP (2375) QReductionProof [EQUIVALENT, 0 ms] (2376) QDP (2377) TransformationProof [EQUIVALENT, 0 ms] (2378) QDP (2379) UsableRulesProof [EQUIVALENT, 0 ms] (2380) QDP (2381) QReductionProof [EQUIVALENT, 0 ms] (2382) QDP (2383) TransformationProof [EQUIVALENT, 0 ms] (2384) QDP (2385) UsableRulesProof [EQUIVALENT, 0 ms] (2386) QDP (2387) QReductionProof [EQUIVALENT, 0 ms] (2388) QDP (2389) TransformationProof [EQUIVALENT, 0 ms] (2390) QDP (2391) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2392) YES (2393) QDP (2394) TransformationProof [EQUIVALENT, 0 ms] (2395) QDP (2396) TransformationProof [EQUIVALENT, 0 ms] (2397) QDP (2398) TransformationProof [EQUIVALENT, 0 ms] (2399) QDP (2400) DependencyGraphProof [EQUIVALENT, 0 ms] (2401) AND (2402) QDP (2403) UsableRulesProof [EQUIVALENT, 0 ms] (2404) QDP (2405) TransformationProof [EQUIVALENT, 0 ms] (2406) QDP (2407) TransformationProof [EQUIVALENT, 0 ms] (2408) QDP (2409) UsableRulesProof [EQUIVALENT, 0 ms] (2410) QDP (2411) QReductionProof [EQUIVALENT, 0 ms] (2412) QDP (2413) TransformationProof [EQUIVALENT, 0 ms] (2414) QDP (2415) DependencyGraphProof [EQUIVALENT, 0 ms] (2416) AND (2417) QDP (2418) UsableRulesProof [EQUIVALENT, 0 ms] (2419) QDP (2420) QReductionProof [EQUIVALENT, 0 ms] (2421) QDP (2422) TransformationProof [EQUIVALENT, 0 ms] (2423) QDP (2424) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2425) YES (2426) QDP (2427) UsableRulesProof [EQUIVALENT, 0 ms] (2428) QDP (2429) QReductionProof [EQUIVALENT, 0 ms] (2430) QDP (2431) TransformationProof [EQUIVALENT, 0 ms] (2432) QDP (2433) UsableRulesProof [EQUIVALENT, 0 ms] (2434) QDP (2435) QReductionProof [EQUIVALENT, 0 ms] (2436) QDP (2437) TransformationProof [EQUIVALENT, 0 ms] (2438) QDP (2439) UsableRulesProof [EQUIVALENT, 0 ms] (2440) QDP (2441) QReductionProof [EQUIVALENT, 0 ms] (2442) QDP (2443) TransformationProof [EQUIVALENT, 0 ms] (2444) QDP (2445) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2446) YES (2447) QDP (2448) TransformationProof [EQUIVALENT, 0 ms] (2449) QDP (2450) TransformationProof [EQUIVALENT, 0 ms] (2451) QDP (2452) TransformationProof [EQUIVALENT, 3 ms] (2453) QDP (2454) DependencyGraphProof [EQUIVALENT, 0 ms] (2455) AND (2456) QDP (2457) UsableRulesProof [EQUIVALENT, 0 ms] (2458) QDP (2459) QReductionProof [EQUIVALENT, 0 ms] (2460) QDP (2461) TransformationProof [EQUIVALENT, 0 ms] (2462) QDP (2463) TransformationProof [EQUIVALENT, 0 ms] (2464) QDP (2465) UsableRulesProof [EQUIVALENT, 0 ms] (2466) QDP (2467) QReductionProof [EQUIVALENT, 0 ms] (2468) QDP (2469) TransformationProof [EQUIVALENT, 0 ms] (2470) QDP (2471) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2472) YES (2473) QDP (2474) TransformationProof [EQUIVALENT, 0 ms] (2475) QDP (2476) TransformationProof [EQUIVALENT, 0 ms] (2477) QDP (2478) QDPSizeChangeProof [EQUIVALENT, 0 ms] (2479) YES (2480) Narrow [COMPLETE, 0 ms] (2481) TRUE ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; data Ratio a = CnPc a a ; data Tup2 b a = Tup2 b a ; compareMyInt :: MyInt -> MyInt -> Ordering; compareMyInt = primCmpInt; enumFromThenToMyInt :: MyInt -> MyInt -> MyInt -> List MyInt; enumFromThenToMyInt = numericEnumFromThenTo; enumFromThenToRatio :: Ratio MyInt -> Ratio MyInt -> Ratio MyInt -> List (Ratio MyInt); enumFromThenToRatio x y z = map toEnumRatio (enumFromThenToMyInt (fromEnumRatio x) (fromEnumRatio y) (fromEnumRatio z)); error :: a; error = stop MyTrue; esEsOrdering :: Ordering -> Ordering -> MyBool; esEsOrdering LT LT = MyTrue; esEsOrdering LT EQ = MyFalse; esEsOrdering LT GT = MyFalse; esEsOrdering EQ LT = MyFalse; esEsOrdering EQ EQ = MyTrue; esEsOrdering EQ GT = MyFalse; esEsOrdering GT LT = MyFalse; esEsOrdering GT EQ = MyFalse; esEsOrdering GT GT = MyTrue; flip :: (c -> a -> b) -> a -> c -> b; flip f x y = f y x; fromEnumRatio :: Ratio MyInt -> MyInt; fromEnumRatio = truncateRatio; fromIntMyInt :: MyInt -> MyInt; fromIntMyInt x = x; fromIntRatio :: MyInt -> Ratio MyInt; fromIntRatio = intToRatio; fsEsOrdering :: Ordering -> Ordering -> MyBool; fsEsOrdering x y = not (esEsOrdering x y); gtEsMyInt :: MyInt -> MyInt -> MyBool; gtEsMyInt x y = fsEsOrdering (compareMyInt x y) LT; intToRatio x = CnPc (fromIntMyInt x) (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))); iterate :: (a -> a) -> a -> List a; iterate f x = Cons x (iterate f (f x)); ltEsMyInt :: MyInt -> MyInt -> MyBool; ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; map :: (b -> a) -> List b -> List a; map f Nil = Nil; map f (Cons x xs) = Cons (f x) (map f xs); msMyInt :: MyInt -> MyInt -> MyInt; msMyInt = primMinusInt; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; numericEnumFromThen n m = iterate (psMyInt (msMyInt m n)) n; numericEnumFromThenTo n n' m = takeWhile (numericEnumFromThenToP m n' n) (numericEnumFromThen n n'); numericEnumFromThenToP yv yw yx = numericEnumFromThenToP2 yv yw yx; numericEnumFromThenToP0 yv yw yx MyTrue = flip gtEsMyInt yv; numericEnumFromThenToP1 yv yw yx MyTrue = flip ltEsMyInt yv; numericEnumFromThenToP1 yv yw yx MyFalse = numericEnumFromThenToP0 yv yw yx otherwise; numericEnumFromThenToP2 yv yw yx = numericEnumFromThenToP1 yv yw yx (gtEsMyInt yw yx); otherwise :: MyBool; otherwise = MyTrue; primCmpInt :: MyInt -> MyInt -> Ordering; primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; primCmpInt (Main.Pos x) (Main.Neg y) = GT; primCmpInt (Main.Neg x) (Main.Pos y) = LT; primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; primCmpNat :: Main.Nat -> Main.Nat -> Ordering; primCmpNat Main.Zero Main.Zero = EQ; primCmpNat Main.Zero (Main.Succ y) = LT; primCmpNat (Main.Succ x) Main.Zero = GT; primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primMinusInt :: MyInt -> MyInt -> MyInt; primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; primMinusNat :: Main.Nat -> Main.Nat -> MyInt; primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primPlusInt :: MyInt -> MyInt -> MyInt; primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; primPlusNat Main.Zero Main.Zero = Main.Zero; primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); primQuotInt :: MyInt -> MyInt -> MyInt; primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt ww wx = Main.error; primRemInt :: MyInt -> MyInt -> MyInt; primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt vy vz = Main.error; properFractionQ xz yu = properFractionQ1 xz yu (properFractionVu30 xz yu); properFractionQ1 xz yu (Tup2 q vw) = q; properFractionR xz yu = properFractionR0 xz yu (properFractionVu30 xz yu); properFractionR0 xz yu (Tup2 vx r) = r; properFractionRatio :: Ratio MyInt -> Tup2 MyInt (Ratio MyInt); properFractionRatio (CnPc x y) = Tup2 (properFractionQ x y) (CnPc (properFractionR x y) y); properFractionVu30 xz yu = quotRemMyInt xz yu; psMyInt :: MyInt -> MyInt -> MyInt; psMyInt = primPlusInt; quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; quotRemMyInt = primQrmInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; takeWhile :: (a -> MyBool) -> List a -> List a; takeWhile p Nil = takeWhile3 p Nil; takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); takeWhile0 p x xs MyTrue = Nil; takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); takeWhile3 p Nil = Nil; takeWhile3 xw xx = takeWhile2 xw xx; toEnumRatio :: MyInt -> Ratio MyInt; toEnumRatio = fromIntRatio; truncateM xy = truncateM0 xy (truncateVu6 xy); truncateM0 xy (Tup2 m vv) = m; truncateRatio :: Ratio MyInt -> MyInt; truncateRatio x = truncateM x; truncateVu6 xy = properFractionRatio xy; } ---------------------------------------- (1) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; data Ratio a = CnPc a a ; data Tup2 b a = Tup2 b a ; compareMyInt :: MyInt -> MyInt -> Ordering; compareMyInt = primCmpInt; enumFromThenToMyInt :: MyInt -> MyInt -> MyInt -> List MyInt; enumFromThenToMyInt = numericEnumFromThenTo; enumFromThenToRatio :: Ratio MyInt -> Ratio MyInt -> Ratio MyInt -> List (Ratio MyInt); enumFromThenToRatio x y z = map toEnumRatio (enumFromThenToMyInt (fromEnumRatio x) (fromEnumRatio y) (fromEnumRatio z)); error :: a; error = stop MyTrue; esEsOrdering :: Ordering -> Ordering -> MyBool; esEsOrdering LT LT = MyTrue; esEsOrdering LT EQ = MyFalse; esEsOrdering LT GT = MyFalse; esEsOrdering EQ LT = MyFalse; esEsOrdering EQ EQ = MyTrue; esEsOrdering EQ GT = MyFalse; esEsOrdering GT LT = MyFalse; esEsOrdering GT EQ = MyFalse; esEsOrdering GT GT = MyTrue; flip :: (b -> a -> c) -> a -> b -> c; flip f x y = f y x; fromEnumRatio :: Ratio MyInt -> MyInt; fromEnumRatio = truncateRatio; fromIntMyInt :: MyInt -> MyInt; fromIntMyInt x = x; fromIntRatio :: MyInt -> Ratio MyInt; fromIntRatio = intToRatio; fsEsOrdering :: Ordering -> Ordering -> MyBool; fsEsOrdering x y = not (esEsOrdering x y); gtEsMyInt :: MyInt -> MyInt -> MyBool; gtEsMyInt x y = fsEsOrdering (compareMyInt x y) LT; intToRatio x = CnPc (fromIntMyInt x) (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))); iterate :: (a -> a) -> a -> List a; iterate f x = Cons x (iterate f (f x)); ltEsMyInt :: MyInt -> MyInt -> MyBool; ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; map :: (a -> b) -> List a -> List b; map f Nil = Nil; map f (Cons x xs) = Cons (f x) (map f xs); msMyInt :: MyInt -> MyInt -> MyInt; msMyInt = primMinusInt; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; numericEnumFromThen n m = iterate (psMyInt (msMyInt m n)) n; numericEnumFromThenTo n n' m = takeWhile (numericEnumFromThenToP m n' n) (numericEnumFromThen n n'); numericEnumFromThenToP yv yw yx = numericEnumFromThenToP2 yv yw yx; numericEnumFromThenToP0 yv yw yx MyTrue = flip gtEsMyInt yv; numericEnumFromThenToP1 yv yw yx MyTrue = flip ltEsMyInt yv; numericEnumFromThenToP1 yv yw yx MyFalse = numericEnumFromThenToP0 yv yw yx otherwise; numericEnumFromThenToP2 yv yw yx = numericEnumFromThenToP1 yv yw yx (gtEsMyInt yw yx); otherwise :: MyBool; otherwise = MyTrue; primCmpInt :: MyInt -> MyInt -> Ordering; primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; primCmpInt (Main.Pos x) (Main.Neg y) = GT; primCmpInt (Main.Neg x) (Main.Pos y) = LT; primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; primCmpNat :: Main.Nat -> Main.Nat -> Ordering; primCmpNat Main.Zero Main.Zero = EQ; primCmpNat Main.Zero (Main.Succ y) = LT; primCmpNat (Main.Succ x) Main.Zero = GT; primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primMinusInt :: MyInt -> MyInt -> MyInt; primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; primMinusNat :: Main.Nat -> Main.Nat -> MyInt; primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primPlusInt :: MyInt -> MyInt -> MyInt; primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; primPlusNat Main.Zero Main.Zero = Main.Zero; primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); primQuotInt :: MyInt -> MyInt -> MyInt; primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt ww wx = Main.error; primRemInt :: MyInt -> MyInt -> MyInt; primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt vy vz = Main.error; properFractionQ xz yu = properFractionQ1 xz yu (properFractionVu30 xz yu); properFractionQ1 xz yu (Tup2 q vw) = q; properFractionR xz yu = properFractionR0 xz yu (properFractionVu30 xz yu); properFractionR0 xz yu (Tup2 vx r) = r; properFractionRatio :: Ratio MyInt -> Tup2 MyInt (Ratio MyInt); properFractionRatio (CnPc x y) = Tup2 (properFractionQ x y) (CnPc (properFractionR x y) y); properFractionVu30 xz yu = quotRemMyInt xz yu; psMyInt :: MyInt -> MyInt -> MyInt; psMyInt = primPlusInt; quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; quotRemMyInt = primQrmInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; takeWhile :: (a -> MyBool) -> List a -> List a; takeWhile p Nil = takeWhile3 p Nil; takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); takeWhile0 p x xs MyTrue = Nil; takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); takeWhile3 p Nil = Nil; takeWhile3 xw xx = takeWhile2 xw xx; toEnumRatio :: MyInt -> Ratio MyInt; toEnumRatio = fromIntRatio; truncateM xy = truncateM0 xy (truncateVu6 xy); truncateM0 xy (Tup2 m vv) = m; truncateRatio :: Ratio MyInt -> MyInt; truncateRatio x = truncateM x; truncateVu6 xy = properFractionRatio xy; } ---------------------------------------- (3) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; data List a = Cons a (List a) | Nil ; data MyBool = MyTrue | MyFalse ; data MyInt = Pos Main.Nat | Neg Main.Nat ; data Main.Nat = Succ Main.Nat | Zero ; data Ordering = LT | EQ | GT ; data Ratio a = CnPc a a ; data Tup2 a b = Tup2 a b ; compareMyInt :: MyInt -> MyInt -> Ordering; compareMyInt = primCmpInt; enumFromThenToMyInt :: MyInt -> MyInt -> MyInt -> List MyInt; enumFromThenToMyInt = numericEnumFromThenTo; enumFromThenToRatio :: Ratio MyInt -> Ratio MyInt -> Ratio MyInt -> List (Ratio MyInt); enumFromThenToRatio x y z = map toEnumRatio (enumFromThenToMyInt (fromEnumRatio x) (fromEnumRatio y) (fromEnumRatio z)); error :: a; error = stop MyTrue; esEsOrdering :: Ordering -> Ordering -> MyBool; esEsOrdering LT LT = MyTrue; esEsOrdering LT EQ = MyFalse; esEsOrdering LT GT = MyFalse; esEsOrdering EQ LT = MyFalse; esEsOrdering EQ EQ = MyTrue; esEsOrdering EQ GT = MyFalse; esEsOrdering GT LT = MyFalse; esEsOrdering GT EQ = MyFalse; esEsOrdering GT GT = MyTrue; flip :: (b -> c -> a) -> c -> b -> a; flip f x y = f y x; fromEnumRatio :: Ratio MyInt -> MyInt; fromEnumRatio = truncateRatio; fromIntMyInt :: MyInt -> MyInt; fromIntMyInt x = x; fromIntRatio :: MyInt -> Ratio MyInt; fromIntRatio = intToRatio; fsEsOrdering :: Ordering -> Ordering -> MyBool; fsEsOrdering x y = not (esEsOrdering x y); gtEsMyInt :: MyInt -> MyInt -> MyBool; gtEsMyInt x y = fsEsOrdering (compareMyInt x y) LT; intToRatio x = CnPc (fromIntMyInt x) (fromIntMyInt (Main.Pos (Main.Succ Main.Zero))); iterate :: (a -> a) -> a -> List a; iterate f x = Cons x (iterate f (f x)); ltEsMyInt :: MyInt -> MyInt -> MyBool; ltEsMyInt x y = fsEsOrdering (compareMyInt x y) GT; map :: (b -> a) -> List b -> List a; map f Nil = Nil; map f (Cons x xs) = Cons (f x) (map f xs); msMyInt :: MyInt -> MyInt -> MyInt; msMyInt = primMinusInt; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; numericEnumFromThen n m = iterate (psMyInt (msMyInt m n)) n; numericEnumFromThenTo n n' m = takeWhile (numericEnumFromThenToP m n' n) (numericEnumFromThen n n'); numericEnumFromThenToP yv yw yx = numericEnumFromThenToP2 yv yw yx; numericEnumFromThenToP0 yv yw yx MyTrue = flip gtEsMyInt yv; numericEnumFromThenToP1 yv yw yx MyTrue = flip ltEsMyInt yv; numericEnumFromThenToP1 yv yw yx MyFalse = numericEnumFromThenToP0 yv yw yx otherwise; numericEnumFromThenToP2 yv yw yx = numericEnumFromThenToP1 yv yw yx (gtEsMyInt yw yx); otherwise :: MyBool; otherwise = MyTrue; primCmpInt :: MyInt -> MyInt -> Ordering; primCmpInt (Main.Pos Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Pos Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Pos Main.Zero) = EQ; primCmpInt (Main.Neg Main.Zero) (Main.Neg Main.Zero) = EQ; primCmpInt (Main.Pos x) (Main.Pos y) = primCmpNat x y; primCmpInt (Main.Pos x) (Main.Neg y) = GT; primCmpInt (Main.Neg x) (Main.Pos y) = LT; primCmpInt (Main.Neg x) (Main.Neg y) = primCmpNat y x; primCmpNat :: Main.Nat -> Main.Nat -> Ordering; primCmpNat Main.Zero Main.Zero = EQ; primCmpNat Main.Zero (Main.Succ y) = LT; primCmpNat (Main.Succ x) Main.Zero = GT; primCmpNat (Main.Succ x) (Main.Succ y) = primCmpNat x y; primDivNatS :: Main.Nat -> Main.Nat -> Main.Nat; primDivNatS Main.Zero Main.Zero = Main.error; primDivNatS (Main.Succ x) Main.Zero = Main.error; primDivNatS (Main.Succ x) (Main.Succ y) = primDivNatS0 x y (primGEqNatS x y); primDivNatS Main.Zero (Main.Succ x) = Main.Zero; primDivNatS0 x y MyTrue = Main.Succ (primDivNatS (primMinusNatS x y) (Main.Succ y)); primDivNatS0 x y MyFalse = Main.Zero; primGEqNatS :: Main.Nat -> Main.Nat -> MyBool; primGEqNatS (Main.Succ x) Main.Zero = MyTrue; primGEqNatS (Main.Succ x) (Main.Succ y) = primGEqNatS x y; primGEqNatS Main.Zero (Main.Succ x) = MyFalse; primGEqNatS Main.Zero Main.Zero = MyTrue; primMinusInt :: MyInt -> MyInt -> MyInt; primMinusInt (Main.Pos x) (Main.Neg y) = Main.Pos (primPlusNat x y); primMinusInt (Main.Neg x) (Main.Pos y) = Main.Neg (primPlusNat x y); primMinusInt (Main.Neg x) (Main.Neg y) = primMinusNat y x; primMinusInt (Main.Pos x) (Main.Pos y) = primMinusNat x y; primMinusNat :: Main.Nat -> Main.Nat -> MyInt; primMinusNat Main.Zero Main.Zero = Main.Pos Main.Zero; primMinusNat Main.Zero (Main.Succ y) = Main.Neg (Main.Succ y); primMinusNat (Main.Succ x) Main.Zero = Main.Pos (Main.Succ x); primMinusNat (Main.Succ x) (Main.Succ y) = primMinusNat x y; primMinusNatS :: Main.Nat -> Main.Nat -> Main.Nat; primMinusNatS (Main.Succ x) (Main.Succ y) = primMinusNatS x y; primMinusNatS Main.Zero (Main.Succ y) = Main.Zero; primMinusNatS x Main.Zero = x; primModNatS :: Main.Nat -> Main.Nat -> Main.Nat; primModNatS Main.Zero Main.Zero = Main.error; primModNatS Main.Zero (Main.Succ x) = Main.Zero; primModNatS (Main.Succ x) Main.Zero = Main.error; primModNatS (Main.Succ x) (Main.Succ Main.Zero) = Main.Zero; primModNatS (Main.Succ x) (Main.Succ (Main.Succ y)) = primModNatS0 x y (primGEqNatS x (Main.Succ y)); primModNatS0 x y MyTrue = primModNatS (primMinusNatS x (Main.Succ y)) (Main.Succ (Main.Succ y)); primModNatS0 x y MyFalse = Main.Succ x; primPlusInt :: MyInt -> MyInt -> MyInt; primPlusInt (Main.Pos x) (Main.Neg y) = primMinusNat x y; primPlusInt (Main.Neg x) (Main.Pos y) = primMinusNat y x; primPlusInt (Main.Neg x) (Main.Neg y) = Main.Neg (primPlusNat x y); primPlusInt (Main.Pos x) (Main.Pos y) = Main.Pos (primPlusNat x y); primPlusNat :: Main.Nat -> Main.Nat -> Main.Nat; primPlusNat Main.Zero Main.Zero = Main.Zero; primPlusNat Main.Zero (Main.Succ y) = Main.Succ y; primPlusNat (Main.Succ x) Main.Zero = Main.Succ x; primPlusNat (Main.Succ x) (Main.Succ y) = Main.Succ (Main.Succ (primPlusNat x y)); primQrmInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; primQrmInt x y = Tup2 (primQuotInt x y) (primRemInt x y); primQuotInt :: MyInt -> MyInt -> MyInt; primQuotInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primDivNatS x (Main.Succ y)); primQuotInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Pos (primDivNatS x (Main.Succ y)); primQuotInt ww wx = Main.error; primRemInt :: MyInt -> MyInt -> MyInt; primRemInt (Main.Pos x) (Main.Pos (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Pos x) (Main.Neg (Main.Succ y)) = Main.Pos (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Pos (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt (Main.Neg x) (Main.Neg (Main.Succ y)) = Main.Neg (primModNatS x (Main.Succ y)); primRemInt vy vz = Main.error; properFractionQ xz yu = properFractionQ1 xz yu (properFractionVu30 xz yu); properFractionQ1 xz yu (Tup2 q vw) = q; properFractionR xz yu = properFractionR0 xz yu (properFractionVu30 xz yu); properFractionR0 xz yu (Tup2 vx r) = r; properFractionRatio :: Ratio MyInt -> Tup2 MyInt (Ratio MyInt); properFractionRatio (CnPc x y) = Tup2 (properFractionQ x y) (CnPc (properFractionR x y) y); properFractionVu30 xz yu = quotRemMyInt xz yu; psMyInt :: MyInt -> MyInt -> MyInt; psMyInt = primPlusInt; quotRemMyInt :: MyInt -> MyInt -> Tup2 MyInt MyInt; quotRemMyInt = primQrmInt; stop :: MyBool -> a; stop MyFalse = stop MyFalse; takeWhile :: (a -> MyBool) -> List a -> List a; takeWhile p Nil = takeWhile3 p Nil; takeWhile p (Cons x xs) = takeWhile2 p (Cons x xs); takeWhile0 p x xs MyTrue = Nil; takeWhile1 p x xs MyTrue = Cons x (takeWhile p xs); takeWhile1 p x xs MyFalse = takeWhile0 p x xs otherwise; takeWhile2 p (Cons x xs) = takeWhile1 p x xs (p x); takeWhile3 p Nil = Nil; takeWhile3 xw xx = takeWhile2 xw xx; toEnumRatio :: MyInt -> Ratio MyInt; toEnumRatio = fromIntRatio; truncateM xy = truncateM0 xy (truncateVu6 xy); truncateM0 xy (Tup2 m vv) = m; truncateRatio :: Ratio MyInt -> MyInt; truncateRatio x = truncateM x; truncateVu6 xy = properFractionRatio xy; } ---------------------------------------- (5) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="enumFromThenToRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="enumFromThenToRatio wy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="enumFromThenToRatio wy3 wy4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 5[label="enumFromThenToRatio wy3 wy4 wy5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 6 -> 897[label="",style="dashed", color="red", weight=0]; 6[label="map toEnumRatio (enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5))",fontsize=16,color="magenta"];6 -> 898[label="",style="dashed", color="magenta", weight=3]; 898[label="enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];898 -> 1395[label="",style="solid", color="black", weight=3]; 897[label="map toEnumRatio wy13",fontsize=16,color="burlywood",shape="triangle"];17123[label="wy13/Cons wy130 wy131",fontsize=10,color="white",style="solid",shape="box"];897 -> 17123[label="",style="solid", color="burlywood", weight=9]; 17123 -> 1396[label="",style="solid", color="burlywood", weight=3]; 17124[label="wy13/Nil",fontsize=10,color="white",style="solid",shape="box"];897 -> 17124[label="",style="solid", color="burlywood", weight=9]; 17124 -> 1397[label="",style="solid", color="burlywood", weight=3]; 1395[label="numericEnumFromThenTo (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];1395 -> 1398[label="",style="solid", color="black", weight=3]; 1396[label="map toEnumRatio (Cons wy130 wy131)",fontsize=16,color="black",shape="box"];1396 -> 1399[label="",style="solid", color="black", weight=3]; 1397[label="map toEnumRatio Nil",fontsize=16,color="black",shape="box"];1397 -> 1400[label="",style="solid", color="black", weight=3]; 1398[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (numericEnumFromThen (fromEnumRatio wy3) (fromEnumRatio wy4))",fontsize=16,color="black",shape="box"];1398 -> 1401[label="",style="solid", color="black", weight=3]; 1399[label="Cons (toEnumRatio wy130) (map toEnumRatio wy131)",fontsize=16,color="green",shape="box"];1399 -> 1402[label="",style="dashed", color="green", weight=3]; 1399 -> 1403[label="",style="dashed", color="green", weight=3]; 1400[label="Nil",fontsize=16,color="green",shape="box"];1401[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1401 -> 1404[label="",style="solid", color="black", weight=3]; 1402[label="toEnumRatio wy130",fontsize=16,color="black",shape="box"];1402 -> 1405[label="",style="solid", color="black", weight=3]; 1403 -> 897[label="",style="dashed", color="red", weight=0]; 1403[label="map toEnumRatio wy131",fontsize=16,color="magenta"];1403 -> 1406[label="",style="dashed", color="magenta", weight=3]; 1404[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1404 -> 1407[label="",style="solid", color="black", weight=3]; 1405[label="fromIntRatio wy130",fontsize=16,color="black",shape="box"];1405 -> 1408[label="",style="solid", color="black", weight=3]; 1406[label="wy131",fontsize=16,color="green",shape="box"];1407[label="takeWhile2 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1407 -> 1409[label="",style="solid", color="black", weight=3]; 1408[label="intToRatio wy130",fontsize=16,color="black",shape="box"];1408 -> 1410[label="",style="solid", color="black", weight=3]; 1409[label="takeWhile1 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1409 -> 1411[label="",style="solid", color="black", weight=3]; 1410[label="CnPc (fromIntMyInt wy130) (fromIntMyInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];1410 -> 1412[label="",style="dashed", color="green", weight=3]; 1410 -> 1413[label="",style="dashed", color="green", weight=3]; 1411[label="takeWhile1 (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1411 -> 1414[label="",style="solid", color="black", weight=3]; 1412[label="fromIntMyInt wy130",fontsize=16,color="black",shape="triangle"];1412 -> 1415[label="",style="solid", color="black", weight=3]; 1413 -> 1412[label="",style="dashed", color="red", weight=0]; 1413[label="fromIntMyInt (Pos (Succ Zero))",fontsize=16,color="magenta"];1413 -> 1416[label="",style="dashed", color="magenta", weight=3]; 1414[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1414 -> 1417[label="",style="solid", color="black", weight=3]; 1415[label="wy130",fontsize=16,color="green",shape="box"];1416[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1417[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1417 -> 1418[label="",style="solid", color="black", weight=3]; 1418[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1418 -> 1419[label="",style="solid", color="black", weight=3]; 1419[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1419 -> 1420[label="",style="solid", color="black", weight=3]; 1420[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1420 -> 1421[label="",style="solid", color="black", weight=3]; 1421[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1421 -> 1422[label="",style="solid", color="black", weight=3]; 1422[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1422 -> 1423[label="",style="solid", color="black", weight=3]; 1423[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17125[label="wy4/CnPc wy40 wy41",fontsize=10,color="white",style="solid",shape="box"];1423 -> 17125[label="",style="solid", color="burlywood", weight=9]; 17125 -> 1424[label="",style="solid", color="burlywood", weight=3]; 1424[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1424 -> 1425[label="",style="solid", color="black", weight=3]; 1425[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1425 -> 1426[label="",style="solid", color="black", weight=3]; 1426[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1426 -> 1427[label="",style="solid", color="black", weight=3]; 1427[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1427 -> 1428[label="",style="solid", color="black", weight=3]; 1428[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1428 -> 1429[label="",style="solid", color="black", weight=3]; 1429[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1429 -> 1430[label="",style="solid", color="black", weight=3]; 1430[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1430 -> 1431[label="",style="solid", color="black", weight=3]; 1431[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17126[label="wy40/Pos wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17126[label="",style="solid", color="burlywood", weight=9]; 17126 -> 1432[label="",style="solid", color="burlywood", weight=3]; 17127[label="wy40/Neg wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17127[label="",style="solid", color="burlywood", weight=9]; 17127 -> 1433[label="",style="solid", color="burlywood", weight=3]; 1432[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17128[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17128[label="",style="solid", color="burlywood", weight=9]; 17128 -> 1434[label="",style="solid", color="burlywood", weight=3]; 17129[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17129[label="",style="solid", color="burlywood", weight=9]; 17129 -> 1435[label="",style="solid", color="burlywood", weight=3]; 1433[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17130[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17130[label="",style="solid", color="burlywood", weight=9]; 17130 -> 1436[label="",style="solid", color="burlywood", weight=3]; 17131[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17131[label="",style="solid", color="burlywood", weight=9]; 17131 -> 1437[label="",style="solid", color="burlywood", weight=3]; 1434[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17132[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17132[label="",style="solid", color="burlywood", weight=9]; 17132 -> 1438[label="",style="solid", color="burlywood", weight=3]; 17133[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17133[label="",style="solid", color="burlywood", weight=9]; 17133 -> 1439[label="",style="solid", color="burlywood", weight=3]; 1435[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17134[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17134[label="",style="solid", color="burlywood", weight=9]; 17134 -> 1440[label="",style="solid", color="burlywood", weight=3]; 17135[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17135[label="",style="solid", color="burlywood", weight=9]; 17135 -> 1441[label="",style="solid", color="burlywood", weight=3]; 1436[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17136[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17136[label="",style="solid", color="burlywood", weight=9]; 17136 -> 1442[label="",style="solid", color="burlywood", weight=3]; 17137[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17137[label="",style="solid", color="burlywood", weight=9]; 17137 -> 1443[label="",style="solid", color="burlywood", weight=3]; 1437[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17138[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17138[label="",style="solid", color="burlywood", weight=9]; 17138 -> 1444[label="",style="solid", color="burlywood", weight=3]; 17139[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17139[label="",style="solid", color="burlywood", weight=9]; 17139 -> 1445[label="",style="solid", color="burlywood", weight=3]; 1438[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1438 -> 1446[label="",style="solid", color="black", weight=3]; 1439[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1439 -> 1447[label="",style="solid", color="black", weight=3]; 1440[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1440 -> 1448[label="",style="solid", color="black", weight=3]; 1441[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1441 -> 1449[label="",style="solid", color="black", weight=3]; 1442[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1442 -> 1450[label="",style="solid", color="black", weight=3]; 1443[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1443 -> 1451[label="",style="solid", color="black", weight=3]; 1444[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1444 -> 1452[label="",style="solid", color="black", weight=3]; 1445[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1445 -> 1453[label="",style="solid", color="black", weight=3]; 1446[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17140[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17140[label="",style="solid", color="burlywood", weight=9]; 17140 -> 1454[label="",style="solid", color="burlywood", weight=3]; 17141[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17141[label="",style="solid", color="burlywood", weight=9]; 17141 -> 1455[label="",style="solid", color="burlywood", weight=3]; 1447[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="triangle"];1447 -> 1456[label="",style="solid", color="black", weight=3]; 1448[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17142[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17142[label="",style="solid", color="burlywood", weight=9]; 17142 -> 1457[label="",style="solid", color="burlywood", weight=3]; 17143[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17143[label="",style="solid", color="burlywood", weight=9]; 17143 -> 1458[label="",style="solid", color="burlywood", weight=3]; 1449 -> 1447[label="",style="dashed", color="red", weight=0]; 1449[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1448[label="",style="dashed", color="red", weight=0]; 1450[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1459[label="",style="dashed", color="magenta", weight=3]; 1450 -> 1460[label="",style="dashed", color="magenta", weight=3]; 1451 -> 1447[label="",style="dashed", color="red", weight=0]; 1451[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1446[label="",style="dashed", color="red", weight=0]; 1452[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1461[label="",style="dashed", color="magenta", weight=3]; 1452 -> 1462[label="",style="dashed", color="magenta", weight=3]; 1453 -> 1447[label="",style="dashed", color="red", weight=0]; 1453[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1454[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1454 -> 1463[label="",style="solid", color="black", weight=3]; 1455[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1455 -> 1464[label="",style="solid", color="black", weight=3]; 1456[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3))) (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1456 -> 1465[label="",style="solid", color="black", weight=3]; 1457[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1457 -> 1466[label="",style="solid", color="black", weight=3]; 1458[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1458 -> 1467[label="",style="solid", color="black", weight=3]; 1459[label="wy4100",fontsize=16,color="green",shape="box"];1460[label="wy400",fontsize=16,color="green",shape="box"];1461[label="wy400",fontsize=16,color="green",shape="box"];1462[label="wy4100",fontsize=16,color="green",shape="box"];1463[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17144[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17144[label="",style="solid", color="burlywood", weight=9]; 17144 -> 1468[label="",style="solid", color="burlywood", weight=3]; 17145[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17145[label="",style="solid", color="burlywood", weight=9]; 17145 -> 1469[label="",style="solid", color="burlywood", weight=3]; 1464 -> 13676[label="",style="dashed", color="red", weight=0]; 1464[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1464 -> 13677[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13678[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13679[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13680[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13681[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13682[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13683[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13684[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13685[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13686[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13687[label="",style="dashed", color="magenta", weight=3]; 1465[label="error []",fontsize=16,color="red",shape="box"];1466[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17146[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17146[label="",style="solid", color="burlywood", weight=9]; 17146 -> 1471[label="",style="solid", color="burlywood", weight=3]; 17147[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17147[label="",style="solid", color="burlywood", weight=9]; 17147 -> 1472[label="",style="solid", color="burlywood", weight=3]; 1467 -> 16126[label="",style="dashed", color="red", weight=0]; 1467[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1467 -> 16127[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16128[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16129[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16130[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16131[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16132[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16133[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16134[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16135[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16136[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16137[label="",style="dashed", color="magenta", weight=3]; 1468[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17148[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17148[label="",style="solid", color="burlywood", weight=9]; 17148 -> 1474[label="",style="solid", color="burlywood", weight=3]; 17149[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17149[label="",style="solid", color="burlywood", weight=9]; 17149 -> 1475[label="",style="solid", color="burlywood", weight=3]; 1469[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17150[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17150[label="",style="solid", color="burlywood", weight=9]; 17150 -> 1476[label="",style="solid", color="burlywood", weight=3]; 17151[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17151[label="",style="solid", color="burlywood", weight=9]; 17151 -> 1477[label="",style="solid", color="burlywood", weight=3]; 13677 -> 2355[label="",style="dashed", color="red", weight=0]; 13677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13678 -> 2355[label="",style="dashed", color="red", weight=0]; 13678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13679 -> 2355[label="",style="dashed", color="red", weight=0]; 13679[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13680 -> 2355[label="",style="dashed", color="red", weight=0]; 13680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13681 -> 2355[label="",style="dashed", color="red", weight=0]; 13681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13682 -> 2355[label="",style="dashed", color="red", weight=0]; 13682[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13683 -> 2355[label="",style="dashed", color="red", weight=0]; 13683[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13683 -> 14824[label="",style="dashed", color="magenta", weight=3]; 13684 -> 14825[label="",style="dashed", color="red", weight=0]; 13684[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13684 -> 14826[label="",style="dashed", color="magenta", weight=3]; 13685 -> 2355[label="",style="dashed", color="red", weight=0]; 13685[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13686 -> 2355[label="",style="dashed", color="red", weight=0]; 13686[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13686 -> 14832[label="",style="dashed", color="magenta", weight=3]; 13687 -> 14825[label="",style="dashed", color="red", weight=0]; 13687[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13687 -> 14827[label="",style="dashed", color="magenta", weight=3]; 13676[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 wy792 wy738)",fontsize=16,color="burlywood",shape="triangle"];17152[label="wy792/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17152[label="",style="solid", color="burlywood", weight=9]; 17152 -> 14833[label="",style="solid", color="burlywood", weight=3]; 17153[label="wy792/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17153[label="",style="solid", color="burlywood", weight=9]; 17153 -> 14834[label="",style="solid", color="burlywood", weight=3]; 1471[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17154[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17154[label="",style="solid", color="burlywood", weight=9]; 17154 -> 1479[label="",style="solid", color="burlywood", weight=3]; 17155[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17155[label="",style="solid", color="burlywood", weight=9]; 17155 -> 1480[label="",style="solid", color="burlywood", weight=3]; 1472[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17156[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17156[label="",style="solid", color="burlywood", weight=9]; 17156 -> 1481[label="",style="solid", color="burlywood", weight=3]; 17157[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17157[label="",style="solid", color="burlywood", weight=9]; 17157 -> 1482[label="",style="solid", color="burlywood", weight=3]; 16127 -> 16170[label="",style="dashed", color="red", weight=0]; 16127[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16127 -> 16171[label="",style="dashed", color="magenta", weight=3]; 16128 -> 2355[label="",style="dashed", color="red", weight=0]; 16128[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16129 -> 2355[label="",style="dashed", color="red", weight=0]; 16129[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16129 -> 16177[label="",style="dashed", color="magenta", weight=3]; 16130 -> 2355[label="",style="dashed", color="red", weight=0]; 16130[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16131 -> 2355[label="",style="dashed", color="red", weight=0]; 16131[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16132 -> 2355[label="",style="dashed", color="red", weight=0]; 16132[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16132 -> 16178[label="",style="dashed", color="magenta", weight=3]; 16133 -> 2355[label="",style="dashed", color="red", weight=0]; 16133[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16134 -> 16170[label="",style="dashed", color="red", weight=0]; 16134[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16134 -> 16172[label="",style="dashed", color="magenta", weight=3]; 16135 -> 2355[label="",style="dashed", color="red", weight=0]; 16135[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16136 -> 2355[label="",style="dashed", color="red", weight=0]; 16136[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16137 -> 2355[label="",style="dashed", color="red", weight=0]; 16137[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16126[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 wy808 wy756)",fontsize=16,color="burlywood",shape="triangle"];17158[label="wy808/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17158[label="",style="solid", color="burlywood", weight=9]; 17158 -> 16179[label="",style="solid", color="burlywood", weight=3]; 17159[label="wy808/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17159[label="",style="solid", color="burlywood", weight=9]; 17159 -> 16180[label="",style="solid", color="burlywood", weight=3]; 1474[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1474 -> 1484[label="",style="solid", color="black", weight=3]; 1475[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1475 -> 1485[label="",style="solid", color="black", weight=3]; 1476[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1476 -> 1486[label="",style="solid", color="black", weight=3]; 1477[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1477 -> 1487[label="",style="solid", color="black", weight=3]; 2355[label="fromEnumRatio wy3",fontsize=16,color="black",shape="triangle"];2355 -> 2368[label="",style="solid", color="black", weight=3]; 14824[label="wy5",fontsize=16,color="green",shape="box"];14826 -> 2355[label="",style="dashed", color="red", weight=0]; 14826[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14825[label="not (esEsOrdering (primCmpInt (Pos Zero) wy794) LT)",fontsize=16,color="burlywood",shape="triangle"];17160[label="wy794/Pos wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17160[label="",style="solid", color="burlywood", weight=9]; 17160 -> 14835[label="",style="solid", color="burlywood", weight=3]; 17161[label="wy794/Neg wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17161[label="",style="solid", color="burlywood", weight=9]; 17161 -> 14836[label="",style="solid", color="burlywood", weight=3]; 14832[label="wy5",fontsize=16,color="green",shape="box"];14827 -> 2355[label="",style="dashed", color="red", weight=0]; 14827[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14833[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14833 -> 14883[label="",style="solid", color="black", weight=3]; 14834[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];14834 -> 14884[label="",style="solid", color="black", weight=3]; 1479[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1479 -> 1489[label="",style="solid", color="black", weight=3]; 1480[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1480 -> 1490[label="",style="solid", color="black", weight=3]; 1481[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1481 -> 1491[label="",style="solid", color="black", weight=3]; 1482[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1482 -> 1492[label="",style="solid", color="black", weight=3]; 16171 -> 2355[label="",style="dashed", color="red", weight=0]; 16171[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16170[label="not (esEsOrdering (primCmpInt (Neg Zero) wy810) LT)",fontsize=16,color="burlywood",shape="triangle"];17162[label="wy810/Pos wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17162[label="",style="solid", color="burlywood", weight=9]; 17162 -> 16181[label="",style="solid", color="burlywood", weight=3]; 17163[label="wy810/Neg wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17163[label="",style="solid", color="burlywood", weight=9]; 17163 -> 16182[label="",style="solid", color="burlywood", weight=3]; 16177[label="wy5",fontsize=16,color="green",shape="box"];16178[label="wy5",fontsize=16,color="green",shape="box"];16172 -> 2355[label="",style="dashed", color="red", weight=0]; 16172[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16179[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16179 -> 16190[label="",style="solid", color="black", weight=3]; 16180[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];16180 -> 16191[label="",style="solid", color="black", weight=3]; 1484 -> 11246[label="",style="dashed", color="red", weight=0]; 1484[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1484 -> 11247[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11248[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11249[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11250[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11251[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11252[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11253[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11254[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11255[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11256[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11257[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11258[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11259[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11260[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11261[label="",style="dashed", color="magenta", weight=3]; 1485[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1485 -> 1496[label="",style="solid", color="black", weight=3]; 1486[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1486 -> 1497[label="",style="solid", color="black", weight=3]; 1487[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1487 -> 1498[label="",style="solid", color="black", weight=3]; 2368[label="truncateRatio wy3",fontsize=16,color="black",shape="box"];2368 -> 2477[label="",style="solid", color="black", weight=3]; 14835[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17164[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17164[label="",style="solid", color="burlywood", weight=9]; 17164 -> 14885[label="",style="solid", color="burlywood", weight=3]; 17165[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17165[label="",style="solid", color="burlywood", weight=9]; 17165 -> 14886[label="",style="solid", color="burlywood", weight=3]; 14836[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17166[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17166[label="",style="solid", color="burlywood", weight=9]; 17166 -> 14887[label="",style="solid", color="burlywood", weight=3]; 17167[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17167[label="",style="solid", color="burlywood", weight=9]; 17167 -> 14888[label="",style="solid", color="burlywood", weight=3]; 14883 -> 14904[label="",style="dashed", color="red", weight=0]; 14883[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];14883 -> 14905[label="",style="dashed", color="magenta", weight=3]; 14884[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];14884 -> 14906[label="",style="solid", color="black", weight=3]; 1489 -> 11563[label="",style="dashed", color="red", weight=0]; 1489[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1489 -> 11564[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11565[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11566[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11567[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11568[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11569[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11570[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11571[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11572[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11573[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11574[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11575[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11576[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11577[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11578[label="",style="dashed", color="magenta", weight=3]; 1490[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1490 -> 1502[label="",style="solid", color="black", weight=3]; 1491[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1491 -> 1503[label="",style="solid", color="black", weight=3]; 1492[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1492 -> 1504[label="",style="solid", color="black", weight=3]; 16181[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17168[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17168[label="",style="solid", color="burlywood", weight=9]; 17168 -> 16192[label="",style="solid", color="burlywood", weight=3]; 17169[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17169[label="",style="solid", color="burlywood", weight=9]; 17169 -> 16193[label="",style="solid", color="burlywood", weight=3]; 16182[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17170[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17170[label="",style="solid", color="burlywood", weight=9]; 17170 -> 16194[label="",style="solid", color="burlywood", weight=3]; 17171[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17171[label="",style="solid", color="burlywood", weight=9]; 17171 -> 16195[label="",style="solid", color="burlywood", weight=3]; 16190 -> 16232[label="",style="dashed", color="red", weight=0]; 16190[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16190 -> 16233[label="",style="dashed", color="magenta", weight=3]; 16191[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16191 -> 16234[label="",style="solid", color="black", weight=3]; 11247 -> 2355[label="",style="dashed", color="red", weight=0]; 11247[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11248[label="wy41000",fontsize=16,color="green",shape="box"];11249[label="wy40000",fontsize=16,color="green",shape="box"];11250 -> 2355[label="",style="dashed", color="red", weight=0]; 11250[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11251 -> 2355[label="",style="dashed", color="red", weight=0]; 11251[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11252 -> 2355[label="",style="dashed", color="red", weight=0]; 11252[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11253 -> 2355[label="",style="dashed", color="red", weight=0]; 11253[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11253 -> 11412[label="",style="dashed", color="magenta", weight=3]; 11254 -> 2355[label="",style="dashed", color="red", weight=0]; 11254[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11255[label="wy40000",fontsize=16,color="green",shape="box"];11256 -> 2355[label="",style="dashed", color="red", weight=0]; 11256[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11257 -> 2355[label="",style="dashed", color="red", weight=0]; 11257[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11258 -> 2355[label="",style="dashed", color="red", weight=0]; 11258[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11259[label="wy41000",fontsize=16,color="green",shape="box"];11260 -> 2355[label="",style="dashed", color="red", weight=0]; 11260[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11261 -> 2355[label="",style="dashed", color="red", weight=0]; 11261[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11261 -> 11413[label="",style="dashed", color="magenta", weight=3]; 11246[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="triangle"];17172[label="wy727/Succ wy7270",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17172[label="",style="solid", color="burlywood", weight=9]; 17172 -> 11414[label="",style="solid", color="burlywood", weight=3]; 17173[label="wy727/Zero",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17173[label="",style="solid", color="burlywood", weight=9]; 17173 -> 11415[label="",style="solid", color="burlywood", weight=3]; 1496 -> 12619[label="",style="dashed", color="red", weight=0]; 1496[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1496 -> 12620[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12621[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12622[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12623[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12624[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12625[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12626[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12627[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12628[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12629[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12630[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12631[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12632[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13676[label="",style="dashed", color="red", weight=0]; 1497[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1497 -> 13721[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13722[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13723[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13724[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13725[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13726[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13727[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13728[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13729[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13730[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13731[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12619[label="",style="dashed", color="red", weight=0]; 1498[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1498 -> 12633[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12634[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12635[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12636[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12637[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12638[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12639[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12640[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12641[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12642[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12643[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12644[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12645[label="",style="dashed", color="magenta", weight=3]; 2477[label="truncateM wy3",fontsize=16,color="black",shape="box"];2477 -> 2485[label="",style="solid", color="black", weight=3]; 14885[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14885 -> 14907[label="",style="solid", color="black", weight=3]; 14886[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];14886 -> 14908[label="",style="solid", color="black", weight=3]; 14887[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14887 -> 14909[label="",style="solid", color="black", weight=3]; 14888[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];14888 -> 14910[label="",style="solid", color="black", weight=3]; 14905 -> 5275[label="",style="dashed", color="red", weight=0]; 14905[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];14905 -> 14911[label="",style="dashed", color="magenta", weight=3]; 14905 -> 14912[label="",style="dashed", color="magenta", weight=3]; 14904[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) wy801",fontsize=16,color="burlywood",shape="triangle"];17174[label="wy801/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17174[label="",style="solid", color="burlywood", weight=9]; 17174 -> 14913[label="",style="solid", color="burlywood", weight=3]; 17175[label="wy801/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17175[label="",style="solid", color="burlywood", weight=9]; 17175 -> 14914[label="",style="solid", color="burlywood", weight=3]; 14906[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14906 -> 14928[label="",style="solid", color="black", weight=3]; 11564[label="wy41000",fontsize=16,color="green",shape="box"];11565 -> 2355[label="",style="dashed", color="red", weight=0]; 11565[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11566 -> 2355[label="",style="dashed", color="red", weight=0]; 11566[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11566 -> 11729[label="",style="dashed", color="magenta", weight=3]; 11567 -> 2355[label="",style="dashed", color="red", weight=0]; 11567[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11568 -> 2355[label="",style="dashed", color="red", weight=0]; 11568[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11569[label="wy41000",fontsize=16,color="green",shape="box"];11570 -> 2355[label="",style="dashed", color="red", weight=0]; 11570[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11571[label="wy40000",fontsize=16,color="green",shape="box"];11572 -> 2355[label="",style="dashed", color="red", weight=0]; 11572[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11573 -> 2355[label="",style="dashed", color="red", weight=0]; 11573[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11574 -> 2355[label="",style="dashed", color="red", weight=0]; 11574[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11575 -> 2355[label="",style="dashed", color="red", weight=0]; 11575[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11575 -> 11730[label="",style="dashed", color="magenta", weight=3]; 11576[label="wy40000",fontsize=16,color="green",shape="box"];11577 -> 2355[label="",style="dashed", color="red", weight=0]; 11577[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11578 -> 2355[label="",style="dashed", color="red", weight=0]; 11578[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11563[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="triangle"];17176[label="wy745/Succ wy7450",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17176[label="",style="solid", color="burlywood", weight=9]; 17176 -> 11731[label="",style="solid", color="burlywood", weight=3]; 17177[label="wy745/Zero",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17177[label="",style="solid", color="burlywood", weight=9]; 17177 -> 11732[label="",style="solid", color="burlywood", weight=3]; 1502 -> 14842[label="",style="dashed", color="red", weight=0]; 1502[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1502 -> 14843[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14844[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14845[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14846[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14847[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14848[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14849[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14850[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14851[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14852[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14853[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14854[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14855[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16126[label="",style="dashed", color="red", weight=0]; 1503[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1503 -> 16149[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16150[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16151[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16152[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16153[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16154[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16155[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16156[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16157[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16158[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16159[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14842[label="",style="dashed", color="red", weight=0]; 1504[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1504 -> 14856[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14857[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14858[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14859[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14860[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14861[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14862[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14863[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14864[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14865[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14866[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14867[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14868[label="",style="dashed", color="magenta", weight=3]; 16192[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16192 -> 16235[label="",style="solid", color="black", weight=3]; 16193[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];16193 -> 16236[label="",style="solid", color="black", weight=3]; 16194[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16194 -> 16237[label="",style="solid", color="black", weight=3]; 16195[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];16195 -> 16238[label="",style="solid", color="black", weight=3]; 16233 -> 5275[label="",style="dashed", color="red", weight=0]; 16233[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16233 -> 16239[label="",style="dashed", color="magenta", weight=3]; 16233 -> 16240[label="",style="dashed", color="magenta", weight=3]; 16232[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) wy812",fontsize=16,color="burlywood",shape="triangle"];17178[label="wy812/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17178[label="",style="solid", color="burlywood", weight=9]; 17178 -> 16241[label="",style="solid", color="burlywood", weight=3]; 17179[label="wy812/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17179[label="",style="solid", color="burlywood", weight=9]; 17179 -> 16242[label="",style="solid", color="burlywood", weight=3]; 16234[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16234 -> 16267[label="",style="solid", color="black", weight=3]; 11412[label="wy5",fontsize=16,color="green",shape="box"];11413[label="wy5",fontsize=16,color="green",shape="box"];11414[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17180[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17180[label="",style="solid", color="burlywood", weight=9]; 17180 -> 11487[label="",style="solid", color="burlywood", weight=3]; 17181[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17181[label="",style="solid", color="burlywood", weight=9]; 17181 -> 11488[label="",style="solid", color="burlywood", weight=3]; 11415[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17182[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17182[label="",style="solid", color="burlywood", weight=9]; 17182 -> 11489[label="",style="solid", color="burlywood", weight=3]; 17183[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17183[label="",style="solid", color="burlywood", weight=9]; 17183 -> 11490[label="",style="solid", color="burlywood", weight=3]; 12620 -> 5128[label="",style="dashed", color="red", weight=0]; 12620[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12620 -> 12658[label="",style="dashed", color="magenta", weight=3]; 12620 -> 12659[label="",style="dashed", color="magenta", weight=3]; 12621 -> 2355[label="",style="dashed", color="red", weight=0]; 12621[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12622 -> 2355[label="",style="dashed", color="red", weight=0]; 12622[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12622 -> 12660[label="",style="dashed", color="magenta", weight=3]; 12623 -> 12661[label="",style="dashed", color="red", weight=0]; 12623[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12623 -> 12662[label="",style="dashed", color="magenta", weight=3]; 12623 -> 12663[label="",style="dashed", color="magenta", weight=3]; 12624 -> 5128[label="",style="dashed", color="red", weight=0]; 12624[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12624 -> 12674[label="",style="dashed", color="magenta", weight=3]; 12624 -> 12675[label="",style="dashed", color="magenta", weight=3]; 12625 -> 2355[label="",style="dashed", color="red", weight=0]; 12625[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12626 -> 12661[label="",style="dashed", color="red", weight=0]; 12626[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12626 -> 12664[label="",style="dashed", color="magenta", weight=3]; 12626 -> 12665[label="",style="dashed", color="magenta", weight=3]; 12627 -> 12676[label="",style="dashed", color="red", weight=0]; 12627[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12627 -> 12677[label="",style="dashed", color="magenta", weight=3]; 12627 -> 12678[label="",style="dashed", color="magenta", weight=3]; 12627 -> 12679[label="",style="dashed", color="magenta", weight=3]; 12628 -> 2355[label="",style="dashed", color="red", weight=0]; 12628[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12629 -> 2355[label="",style="dashed", color="red", weight=0]; 12629[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12630 -> 5128[label="",style="dashed", color="red", weight=0]; 12630[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12630 -> 12686[label="",style="dashed", color="magenta", weight=3]; 12630 -> 12687[label="",style="dashed", color="magenta", weight=3]; 12631 -> 2355[label="",style="dashed", color="red", weight=0]; 12631[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12632 -> 2355[label="",style="dashed", color="red", weight=0]; 12632[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12632 -> 12688[label="",style="dashed", color="magenta", weight=3]; 12619[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 wy771 wy738)",fontsize=16,color="burlywood",shape="triangle"];17184[label="wy771/MyTrue",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17184[label="",style="solid", color="burlywood", weight=9]; 17184 -> 12689[label="",style="solid", color="burlywood", weight=3]; 17185[label="wy771/MyFalse",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17185[label="",style="solid", color="burlywood", weight=9]; 17185 -> 12690[label="",style="solid", color="burlywood", weight=3]; 13721 -> 2355[label="",style="dashed", color="red", weight=0]; 13721[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13722 -> 2355[label="",style="dashed", color="red", weight=0]; 13722[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13723 -> 2355[label="",style="dashed", color="red", weight=0]; 13723[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13724 -> 2355[label="",style="dashed", color="red", weight=0]; 13724[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13725 -> 2355[label="",style="dashed", color="red", weight=0]; 13725[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13726 -> 2355[label="",style="dashed", color="red", weight=0]; 13726[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13727 -> 2355[label="",style="dashed", color="red", weight=0]; 13727[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13727 -> 14837[label="",style="dashed", color="magenta", weight=3]; 13728 -> 14825[label="",style="dashed", color="red", weight=0]; 13728[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13728 -> 14828[label="",style="dashed", color="magenta", weight=3]; 13729 -> 2355[label="",style="dashed", color="red", weight=0]; 13729[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13730 -> 2355[label="",style="dashed", color="red", weight=0]; 13730[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13730 -> 14838[label="",style="dashed", color="magenta", weight=3]; 13731 -> 14825[label="",style="dashed", color="red", weight=0]; 13731[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13731 -> 14829[label="",style="dashed", color="magenta", weight=3]; 12633 -> 5128[label="",style="dashed", color="red", weight=0]; 12633[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12633 -> 12691[label="",style="dashed", color="magenta", weight=3]; 12633 -> 12692[label="",style="dashed", color="magenta", weight=3]; 12634 -> 2355[label="",style="dashed", color="red", weight=0]; 12634[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12635 -> 2355[label="",style="dashed", color="red", weight=0]; 12635[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12635 -> 12693[label="",style="dashed", color="magenta", weight=3]; 12636 -> 12661[label="",style="dashed", color="red", weight=0]; 12636[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12636 -> 12666[label="",style="dashed", color="magenta", weight=3]; 12636 -> 12667[label="",style="dashed", color="magenta", weight=3]; 12637 -> 5128[label="",style="dashed", color="red", weight=0]; 12637[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12637 -> 12694[label="",style="dashed", color="magenta", weight=3]; 12637 -> 12695[label="",style="dashed", color="magenta", weight=3]; 12638 -> 2355[label="",style="dashed", color="red", weight=0]; 12638[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12639 -> 12661[label="",style="dashed", color="red", weight=0]; 12639[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12639 -> 12668[label="",style="dashed", color="magenta", weight=3]; 12639 -> 12669[label="",style="dashed", color="magenta", weight=3]; 12640 -> 12676[label="",style="dashed", color="red", weight=0]; 12640[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12640 -> 12680[label="",style="dashed", color="magenta", weight=3]; 12640 -> 12681[label="",style="dashed", color="magenta", weight=3]; 12640 -> 12682[label="",style="dashed", color="magenta", weight=3]; 12641 -> 2355[label="",style="dashed", color="red", weight=0]; 12641[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12642 -> 2355[label="",style="dashed", color="red", weight=0]; 12642[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12643 -> 5128[label="",style="dashed", color="red", weight=0]; 12643[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12643 -> 12696[label="",style="dashed", color="magenta", weight=3]; 12643 -> 12697[label="",style="dashed", color="magenta", weight=3]; 12644 -> 2355[label="",style="dashed", color="red", weight=0]; 12644[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12645 -> 2355[label="",style="dashed", color="red", weight=0]; 12645[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12645 -> 12698[label="",style="dashed", color="magenta", weight=3]; 2485[label="truncateM0 wy3 (truncateVu6 wy3)",fontsize=16,color="black",shape="box"];2485 -> 2495[label="",style="solid", color="black", weight=3]; 14907[label="not (esEsOrdering (primCmpNat Zero (Succ wy79400)) LT)",fontsize=16,color="black",shape="box"];14907 -> 14929[label="",style="solid", color="black", weight=3]; 14908[label="not (esEsOrdering EQ LT)",fontsize=16,color="black",shape="triangle"];14908 -> 14930[label="",style="solid", color="black", weight=3]; 14909 -> 13404[label="",style="dashed", color="red", weight=0]; 14909[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14910 -> 14908[label="",style="dashed", color="red", weight=0]; 14910[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];14911[label="wy738",fontsize=16,color="green",shape="box"];14912[label="wy735",fontsize=16,color="green",shape="box"];5275[label="flip ltEsMyInt wy439 wy20",fontsize=16,color="black",shape="triangle"];5275 -> 5323[label="",style="solid", color="black", weight=3]; 14913[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];14913 -> 14931[label="",style="solid", color="black", weight=3]; 14914[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyFalse",fontsize=16,color="black",shape="box"];14914 -> 14932[label="",style="solid", color="black", weight=3]; 14928[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="box"];14928 -> 16074[label="",style="solid", color="black", weight=3]; 11729[label="wy5",fontsize=16,color="green",shape="box"];11730[label="wy5",fontsize=16,color="green",shape="box"];11731[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17186[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17186[label="",style="solid", color="burlywood", weight=9]; 17186 -> 11808[label="",style="solid", color="burlywood", weight=3]; 17187[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17187[label="",style="solid", color="burlywood", weight=9]; 17187 -> 11809[label="",style="solid", color="burlywood", weight=3]; 11732[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17188[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17188[label="",style="solid", color="burlywood", weight=9]; 17188 -> 11810[label="",style="solid", color="burlywood", weight=3]; 17189[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17189[label="",style="solid", color="burlywood", weight=9]; 17189 -> 11811[label="",style="solid", color="burlywood", weight=3]; 14843 -> 2355[label="",style="dashed", color="red", weight=0]; 14843[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14843 -> 14889[label="",style="dashed", color="magenta", weight=3]; 14844 -> 2355[label="",style="dashed", color="red", weight=0]; 14844[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14845 -> 5128[label="",style="dashed", color="red", weight=0]; 14845[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14845 -> 14890[label="",style="dashed", color="magenta", weight=3]; 14845 -> 14891[label="",style="dashed", color="magenta", weight=3]; 14846 -> 5128[label="",style="dashed", color="red", weight=0]; 14846[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14846 -> 14892[label="",style="dashed", color="magenta", weight=3]; 14846 -> 14893[label="",style="dashed", color="magenta", weight=3]; 14847 -> 14894[label="",style="dashed", color="red", weight=0]; 14847[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14847 -> 14895[label="",style="dashed", color="magenta", weight=3]; 14847 -> 14896[label="",style="dashed", color="magenta", weight=3]; 14847 -> 14897[label="",style="dashed", color="magenta", weight=3]; 14848 -> 2355[label="",style="dashed", color="red", weight=0]; 14848[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14849 -> 14915[label="",style="dashed", color="red", weight=0]; 14849[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14849 -> 14916[label="",style="dashed", color="magenta", weight=3]; 14849 -> 14917[label="",style="dashed", color="magenta", weight=3]; 14850 -> 2355[label="",style="dashed", color="red", weight=0]; 14850[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14851 -> 2355[label="",style="dashed", color="red", weight=0]; 14851[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14852 -> 5128[label="",style="dashed", color="red", weight=0]; 14852[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14852 -> 14933[label="",style="dashed", color="magenta", weight=3]; 14852 -> 14934[label="",style="dashed", color="magenta", weight=3]; 14853 -> 2355[label="",style="dashed", color="red", weight=0]; 14853[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14853 -> 14935[label="",style="dashed", color="magenta", weight=3]; 14854 -> 14915[label="",style="dashed", color="red", weight=0]; 14854[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14854 -> 14918[label="",style="dashed", color="magenta", weight=3]; 14854 -> 14919[label="",style="dashed", color="magenta", weight=3]; 14855 -> 2355[label="",style="dashed", color="red", weight=0]; 14855[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14842[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 wy795 wy756)",fontsize=16,color="burlywood",shape="triangle"];17190[label="wy795/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17190[label="",style="solid", color="burlywood", weight=9]; 17190 -> 14936[label="",style="solid", color="burlywood", weight=3]; 17191[label="wy795/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17191[label="",style="solid", color="burlywood", weight=9]; 17191 -> 14937[label="",style="solid", color="burlywood", weight=3]; 16149 -> 16170[label="",style="dashed", color="red", weight=0]; 16149[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16149 -> 16173[label="",style="dashed", color="magenta", weight=3]; 16150 -> 2355[label="",style="dashed", color="red", weight=0]; 16150[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16151 -> 2355[label="",style="dashed", color="red", weight=0]; 16151[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16151 -> 16183[label="",style="dashed", color="magenta", weight=3]; 16152 -> 2355[label="",style="dashed", color="red", weight=0]; 16152[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16153 -> 2355[label="",style="dashed", color="red", weight=0]; 16153[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16154 -> 2355[label="",style="dashed", color="red", weight=0]; 16154[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16154 -> 16184[label="",style="dashed", color="magenta", weight=3]; 16155 -> 2355[label="",style="dashed", color="red", weight=0]; 16155[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16156 -> 16170[label="",style="dashed", color="red", weight=0]; 16156[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16156 -> 16174[label="",style="dashed", color="magenta", weight=3]; 16157 -> 2355[label="",style="dashed", color="red", weight=0]; 16157[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16158 -> 2355[label="",style="dashed", color="red", weight=0]; 16158[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16159 -> 2355[label="",style="dashed", color="red", weight=0]; 16159[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14856 -> 2355[label="",style="dashed", color="red", weight=0]; 14856[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14856 -> 14938[label="",style="dashed", color="magenta", weight=3]; 14857 -> 2355[label="",style="dashed", color="red", weight=0]; 14857[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14858 -> 5128[label="",style="dashed", color="red", weight=0]; 14858[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14858 -> 14939[label="",style="dashed", color="magenta", weight=3]; 14858 -> 14940[label="",style="dashed", color="magenta", weight=3]; 14859 -> 5128[label="",style="dashed", color="red", weight=0]; 14859[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14859 -> 14941[label="",style="dashed", color="magenta", weight=3]; 14859 -> 14942[label="",style="dashed", color="magenta", weight=3]; 14860 -> 14894[label="",style="dashed", color="red", weight=0]; 14860[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14860 -> 14898[label="",style="dashed", color="magenta", weight=3]; 14860 -> 14899[label="",style="dashed", color="magenta", weight=3]; 14860 -> 14900[label="",style="dashed", color="magenta", weight=3]; 14861 -> 2355[label="",style="dashed", color="red", weight=0]; 14861[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14862 -> 14915[label="",style="dashed", color="red", weight=0]; 14862[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14862 -> 14920[label="",style="dashed", color="magenta", weight=3]; 14862 -> 14921[label="",style="dashed", color="magenta", weight=3]; 14863 -> 2355[label="",style="dashed", color="red", weight=0]; 14863[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14864 -> 2355[label="",style="dashed", color="red", weight=0]; 14864[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14865 -> 5128[label="",style="dashed", color="red", weight=0]; 14865[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14865 -> 14943[label="",style="dashed", color="magenta", weight=3]; 14865 -> 14944[label="",style="dashed", color="magenta", weight=3]; 14866 -> 2355[label="",style="dashed", color="red", weight=0]; 14866[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14866 -> 14945[label="",style="dashed", color="magenta", weight=3]; 14867 -> 14915[label="",style="dashed", color="red", weight=0]; 14867[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14867 -> 14922[label="",style="dashed", color="magenta", weight=3]; 14867 -> 14923[label="",style="dashed", color="magenta", weight=3]; 14868 -> 2355[label="",style="dashed", color="red", weight=0]; 14868[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16235 -> 14929[label="",style="dashed", color="red", weight=0]; 16235[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16236 -> 14908[label="",style="dashed", color="red", weight=0]; 16236[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16237 -> 14963[label="",style="dashed", color="red", weight=0]; 16237[label="not (esEsOrdering (primCmpNat (Succ wy81000) Zero) LT)",fontsize=16,color="magenta"];16237 -> 16268[label="",style="dashed", color="magenta", weight=3]; 16237 -> 16269[label="",style="dashed", color="magenta", weight=3]; 16238 -> 14908[label="",style="dashed", color="red", weight=0]; 16238[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16239[label="wy756",fontsize=16,color="green",shape="box"];16240[label="wy753",fontsize=16,color="green",shape="box"];16241[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16241 -> 16270[label="",style="solid", color="black", weight=3]; 16242[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyFalse",fontsize=16,color="black",shape="box"];16242 -> 16271[label="",style="solid", color="black", weight=3]; 16267[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="box"];16267 -> 16315[label="",style="solid", color="black", weight=3]; 11487[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11487 -> 11559[label="",style="solid", color="black", weight=3]; 11488[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11488 -> 11560[label="",style="solid", color="black", weight=3]; 11489[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11489 -> 11561[label="",style="solid", color="black", weight=3]; 11490[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11490 -> 11562[label="",style="solid", color="black", weight=3]; 12658 -> 10455[label="",style="dashed", color="red", weight=0]; 12658[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12658 -> 12699[label="",style="dashed", color="magenta", weight=3]; 12659[label="Zero",fontsize=16,color="green",shape="box"];5128[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="burlywood",shape="triangle"];17192[label="wy160/Succ wy1600",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17192[label="",style="solid", color="burlywood", weight=9]; 17192 -> 6025[label="",style="solid", color="burlywood", weight=3]; 17193[label="wy160/Zero",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17193[label="",style="solid", color="burlywood", weight=9]; 17193 -> 6026[label="",style="solid", color="burlywood", weight=3]; 12660[label="wy5",fontsize=16,color="green",shape="box"];12662 -> 2355[label="",style="dashed", color="red", weight=0]; 12662[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12663 -> 5128[label="",style="dashed", color="red", weight=0]; 12663[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12663 -> 12700[label="",style="dashed", color="magenta", weight=3]; 12663 -> 12701[label="",style="dashed", color="magenta", weight=3]; 12661[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) wy773) LT)",fontsize=16,color="burlywood",shape="triangle"];17194[label="wy773/Pos wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17194[label="",style="solid", color="burlywood", weight=9]; 17194 -> 12702[label="",style="solid", color="burlywood", weight=3]; 17195[label="wy773/Neg wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17195[label="",style="solid", color="burlywood", weight=9]; 17195 -> 12703[label="",style="solid", color="burlywood", weight=3]; 12674 -> 10455[label="",style="dashed", color="red", weight=0]; 12674[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12674 -> 12704[label="",style="dashed", color="magenta", weight=3]; 12675[label="Zero",fontsize=16,color="green",shape="box"];12664 -> 2355[label="",style="dashed", color="red", weight=0]; 12664[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12665 -> 5128[label="",style="dashed", color="red", weight=0]; 12665[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12665 -> 12705[label="",style="dashed", color="magenta", weight=3]; 12665 -> 12706[label="",style="dashed", color="magenta", weight=3]; 12677 -> 2355[label="",style="dashed", color="red", weight=0]; 12677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12678 -> 2355[label="",style="dashed", color="red", weight=0]; 12678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12679 -> 5128[label="",style="dashed", color="red", weight=0]; 12679[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12679 -> 12707[label="",style="dashed", color="magenta", weight=3]; 12679 -> 12708[label="",style="dashed", color="magenta", weight=3]; 12676[label="psMyInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="triangle"];12676 -> 12709[label="",style="solid", color="black", weight=3]; 12686 -> 10455[label="",style="dashed", color="red", weight=0]; 12686[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12686 -> 13389[label="",style="dashed", color="magenta", weight=3]; 12687[label="Zero",fontsize=16,color="green",shape="box"];12688[label="wy5",fontsize=16,color="green",shape="box"];12689[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];12689 -> 13390[label="",style="solid", color="black", weight=3]; 12690[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];12690 -> 13391[label="",style="solid", color="black", weight=3]; 14837[label="wy5",fontsize=16,color="green",shape="box"];14828 -> 2355[label="",style="dashed", color="red", weight=0]; 14828[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14838[label="wy5",fontsize=16,color="green",shape="box"];14829 -> 2355[label="",style="dashed", color="red", weight=0]; 14829[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12691 -> 10455[label="",style="dashed", color="red", weight=0]; 12691[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12691 -> 13392[label="",style="dashed", color="magenta", weight=3]; 12692[label="Zero",fontsize=16,color="green",shape="box"];12693[label="wy5",fontsize=16,color="green",shape="box"];12666 -> 2355[label="",style="dashed", color="red", weight=0]; 12666[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12667 -> 5128[label="",style="dashed", color="red", weight=0]; 12667[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12667 -> 12710[label="",style="dashed", color="magenta", weight=3]; 12667 -> 12711[label="",style="dashed", color="magenta", weight=3]; 12694 -> 10455[label="",style="dashed", color="red", weight=0]; 12694[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12694 -> 13393[label="",style="dashed", color="magenta", weight=3]; 12695[label="Zero",fontsize=16,color="green",shape="box"];12668 -> 2355[label="",style="dashed", color="red", weight=0]; 12668[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12669 -> 5128[label="",style="dashed", color="red", weight=0]; 12669[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12669 -> 12712[label="",style="dashed", color="magenta", weight=3]; 12669 -> 12713[label="",style="dashed", color="magenta", weight=3]; 12680 -> 2355[label="",style="dashed", color="red", weight=0]; 12680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12681 -> 2355[label="",style="dashed", color="red", weight=0]; 12681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12682 -> 5128[label="",style="dashed", color="red", weight=0]; 12682[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12682 -> 12714[label="",style="dashed", color="magenta", weight=3]; 12682 -> 12715[label="",style="dashed", color="magenta", weight=3]; 12696 -> 10455[label="",style="dashed", color="red", weight=0]; 12696[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12696 -> 13394[label="",style="dashed", color="magenta", weight=3]; 12697[label="Zero",fontsize=16,color="green",shape="box"];12698[label="wy5",fontsize=16,color="green",shape="box"];2495[label="truncateM0 wy3 (properFractionRatio wy3)",fontsize=16,color="burlywood",shape="box"];17196[label="wy3/CnPc wy30 wy31",fontsize=10,color="white",style="solid",shape="box"];2495 -> 17196[label="",style="solid", color="burlywood", weight=9]; 17196 -> 2529[label="",style="solid", color="burlywood", weight=3]; 14929[label="not (esEsOrdering LT LT)",fontsize=16,color="black",shape="triangle"];14929 -> 16077[label="",style="solid", color="black", weight=3]; 14930 -> 7428[label="",style="dashed", color="red", weight=0]; 14930[label="not MyFalse",fontsize=16,color="magenta"];13404[label="not (esEsOrdering GT LT)",fontsize=16,color="black",shape="triangle"];13404 -> 13652[label="",style="solid", color="black", weight=3]; 5323[label="ltEsMyInt wy20 wy439",fontsize=16,color="black",shape="box"];5323 -> 5496[label="",style="solid", color="black", weight=3]; 14931[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)))",fontsize=16,color="green",shape="box"];14931 -> 16078[label="",style="dashed", color="green", weight=3]; 14932[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) otherwise",fontsize=16,color="black",shape="box"];14932 -> 16079[label="",style="solid", color="black", weight=3]; 16074[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];16074 -> 16185[label="",style="solid", color="black", weight=3]; 11808[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11808 -> 12494[label="",style="solid", color="black", weight=3]; 11809[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11809 -> 12495[label="",style="solid", color="black", weight=3]; 11810[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11810 -> 12496[label="",style="solid", color="black", weight=3]; 11811[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11811 -> 12497[label="",style="solid", color="black", weight=3]; 14889[label="wy5",fontsize=16,color="green",shape="box"];14890 -> 10455[label="",style="dashed", color="red", weight=0]; 14890[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14890 -> 14946[label="",style="dashed", color="magenta", weight=3]; 14891[label="Zero",fontsize=16,color="green",shape="box"];14892 -> 10455[label="",style="dashed", color="red", weight=0]; 14892[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14892 -> 14947[label="",style="dashed", color="magenta", weight=3]; 14893[label="Zero",fontsize=16,color="green",shape="box"];14895 -> 5128[label="",style="dashed", color="red", weight=0]; 14895[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14895 -> 14948[label="",style="dashed", color="magenta", weight=3]; 14895 -> 14949[label="",style="dashed", color="magenta", weight=3]; 14896 -> 2355[label="",style="dashed", color="red", weight=0]; 14896[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14897 -> 2355[label="",style="dashed", color="red", weight=0]; 14897[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14894[label="psMyInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="triangle"];14894 -> 14950[label="",style="solid", color="black", weight=3]; 14916 -> 2355[label="",style="dashed", color="red", weight=0]; 14916[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14917 -> 5128[label="",style="dashed", color="red", weight=0]; 14917[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14917 -> 14951[label="",style="dashed", color="magenta", weight=3]; 14917 -> 14952[label="",style="dashed", color="magenta", weight=3]; 14915[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) wy802) LT)",fontsize=16,color="burlywood",shape="triangle"];17197[label="wy802/Pos wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17197[label="",style="solid", color="burlywood", weight=9]; 17197 -> 14953[label="",style="solid", color="burlywood", weight=3]; 17198[label="wy802/Neg wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17198[label="",style="solid", color="burlywood", weight=9]; 17198 -> 14954[label="",style="solid", color="burlywood", weight=3]; 14933 -> 13663[label="",style="dashed", color="red", weight=0]; 14933[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14933 -> 16080[label="",style="dashed", color="magenta", weight=3]; 14933 -> 16081[label="",style="dashed", color="magenta", weight=3]; 14934[label="Zero",fontsize=16,color="green",shape="box"];14935[label="wy5",fontsize=16,color="green",shape="box"];14918 -> 2355[label="",style="dashed", color="red", weight=0]; 14918[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14919 -> 5128[label="",style="dashed", color="red", weight=0]; 14919[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14919 -> 14955[label="",style="dashed", color="magenta", weight=3]; 14919 -> 14956[label="",style="dashed", color="magenta", weight=3]; 14936[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];14936 -> 16082[label="",style="solid", color="black", weight=3]; 14937[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];14937 -> 16083[label="",style="solid", color="black", weight=3]; 16173 -> 2355[label="",style="dashed", color="red", weight=0]; 16173[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16183[label="wy5",fontsize=16,color="green",shape="box"];16184[label="wy5",fontsize=16,color="green",shape="box"];16174 -> 2355[label="",style="dashed", color="red", weight=0]; 16174[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14938[label="wy5",fontsize=16,color="green",shape="box"];14939 -> 13663[label="",style="dashed", color="red", weight=0]; 14939[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14939 -> 16084[label="",style="dashed", color="magenta", weight=3]; 14939 -> 16085[label="",style="dashed", color="magenta", weight=3]; 14940[label="Zero",fontsize=16,color="green",shape="box"];14941 -> 13663[label="",style="dashed", color="red", weight=0]; 14941[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14941 -> 16086[label="",style="dashed", color="magenta", weight=3]; 14941 -> 16087[label="",style="dashed", color="magenta", weight=3]; 14942[label="Zero",fontsize=16,color="green",shape="box"];14898 -> 5128[label="",style="dashed", color="red", weight=0]; 14898[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14898 -> 14957[label="",style="dashed", color="magenta", weight=3]; 14898 -> 14958[label="",style="dashed", color="magenta", weight=3]; 14899 -> 2355[label="",style="dashed", color="red", weight=0]; 14899[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14900 -> 2355[label="",style="dashed", color="red", weight=0]; 14900[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14920 -> 2355[label="",style="dashed", color="red", weight=0]; 14920[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14921 -> 5128[label="",style="dashed", color="red", weight=0]; 14921[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14921 -> 14959[label="",style="dashed", color="magenta", weight=3]; 14921 -> 14960[label="",style="dashed", color="magenta", weight=3]; 14943 -> 13663[label="",style="dashed", color="red", weight=0]; 14943[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14943 -> 16088[label="",style="dashed", color="magenta", weight=3]; 14943 -> 16089[label="",style="dashed", color="magenta", weight=3]; 14944[label="Zero",fontsize=16,color="green",shape="box"];14945[label="wy5",fontsize=16,color="green",shape="box"];14922 -> 2355[label="",style="dashed", color="red", weight=0]; 14922[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14923 -> 5128[label="",style="dashed", color="red", weight=0]; 14923[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14923 -> 14961[label="",style="dashed", color="magenta", weight=3]; 14923 -> 14962[label="",style="dashed", color="magenta", weight=3]; 16268[label="Zero",fontsize=16,color="green",shape="box"];16269[label="Succ wy81000",fontsize=16,color="green",shape="box"];14963[label="not (esEsOrdering (primCmpNat wy774 wy77300) LT)",fontsize=16,color="burlywood",shape="triangle"];17199[label="wy774/Succ wy7740",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17199[label="",style="solid", color="burlywood", weight=9]; 17199 -> 16105[label="",style="solid", color="burlywood", weight=3]; 17200[label="wy774/Zero",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17200[label="",style="solid", color="burlywood", weight=9]; 17200 -> 16106[label="",style="solid", color="burlywood", weight=3]; 16270[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)))",fontsize=16,color="green",shape="box"];16270 -> 16316[label="",style="dashed", color="green", weight=3]; 16271[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) otherwise",fontsize=16,color="black",shape="box"];16271 -> 16317[label="",style="solid", color="black", weight=3]; 16315[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16315 -> 16348[label="",style="solid", color="black", weight=3]; 11559 -> 11246[label="",style="dashed", color="red", weight=0]; 11559[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11559 -> 11733[label="",style="dashed", color="magenta", weight=3]; 11559 -> 11734[label="",style="dashed", color="magenta", weight=3]; 11560[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="black",shape="triangle"];11560 -> 11735[label="",style="solid", color="black", weight=3]; 11561[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11561 -> 11736[label="",style="solid", color="black", weight=3]; 11562 -> 11560[label="",style="dashed", color="red", weight=0]; 11562[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="magenta"];12699[label="Succ wy40000",fontsize=16,color="green",shape="box"];10455[label="primMinusNatS wy5570000 Zero",fontsize=16,color="burlywood",shape="triangle"];17201[label="wy5570000/Succ wy55700000",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17201[label="",style="solid", color="burlywood", weight=9]; 17201 -> 10485[label="",style="solid", color="burlywood", weight=3]; 17202[label="wy5570000/Zero",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17202[label="",style="solid", color="burlywood", weight=9]; 17202 -> 10486[label="",style="solid", color="burlywood", weight=3]; 6025[label="primDivNatS (Succ wy1600) (Succ wy1700)",fontsize=16,color="black",shape="box"];6025 -> 7057[label="",style="solid", color="black", weight=3]; 6026[label="primDivNatS Zero (Succ wy1700)",fontsize=16,color="black",shape="box"];6026 -> 7058[label="",style="solid", color="black", weight=3]; 12700 -> 10455[label="",style="dashed", color="red", weight=0]; 12700[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12700 -> 13402[label="",style="dashed", color="magenta", weight=3]; 12701[label="Zero",fontsize=16,color="green",shape="box"];12702[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Pos wy7730)) LT)",fontsize=16,color="black",shape="box"];12702 -> 13403[label="",style="solid", color="black", weight=3]; 12703[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Neg wy7730)) LT)",fontsize=16,color="black",shape="box"];12703 -> 13404[label="",style="solid", color="black", weight=3]; 12704[label="Succ wy40000",fontsize=16,color="green",shape="box"];12705 -> 10455[label="",style="dashed", color="red", weight=0]; 12705[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12705 -> 13405[label="",style="dashed", color="magenta", weight=3]; 12706[label="Zero",fontsize=16,color="green",shape="box"];12707 -> 10455[label="",style="dashed", color="red", weight=0]; 12707[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12707 -> 13406[label="",style="dashed", color="magenta", weight=3]; 12708[label="Zero",fontsize=16,color="green",shape="box"];12709[label="primPlusInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="box"];12709 -> 13407[label="",style="solid", color="black", weight=3]; 13389[label="Succ wy40000",fontsize=16,color="green",shape="box"];13390 -> 13641[label="",style="dashed", color="red", weight=0]; 13390[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];13390 -> 13642[label="",style="dashed", color="magenta", weight=3]; 13391[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];13391 -> 13643[label="",style="solid", color="black", weight=3]; 13392[label="Zero",fontsize=16,color="green",shape="box"];12710 -> 10455[label="",style="dashed", color="red", weight=0]; 12710[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12710 -> 13408[label="",style="dashed", color="magenta", weight=3]; 12711[label="Zero",fontsize=16,color="green",shape="box"];13393[label="Zero",fontsize=16,color="green",shape="box"];12712 -> 10455[label="",style="dashed", color="red", weight=0]; 12712[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12712 -> 13409[label="",style="dashed", color="magenta", weight=3]; 12713[label="Zero",fontsize=16,color="green",shape="box"];12714 -> 10455[label="",style="dashed", color="red", weight=0]; 12714[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12714 -> 13410[label="",style="dashed", color="magenta", weight=3]; 12715[label="Zero",fontsize=16,color="green",shape="box"];13394[label="Zero",fontsize=16,color="green",shape="box"];2529[label="truncateM0 (CnPc wy30 wy31) (properFractionRatio (CnPc wy30 wy31))",fontsize=16,color="black",shape="box"];2529 -> 2539[label="",style="solid", color="black", weight=3]; 16077 -> 7423[label="",style="dashed", color="red", weight=0]; 16077[label="not MyTrue",fontsize=16,color="magenta"];7428[label="not MyFalse",fontsize=16,color="black",shape="triangle"];7428 -> 10566[label="",style="solid", color="black", weight=3]; 13652 -> 7428[label="",style="dashed", color="red", weight=0]; 13652[label="not MyFalse",fontsize=16,color="magenta"];5496[label="fsEsOrdering (compareMyInt wy20 wy439) GT",fontsize=16,color="black",shape="box"];5496 -> 5551[label="",style="solid", color="black", weight=3]; 16078[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="black",shape="box"];16078 -> 16186[label="",style="solid", color="black", weight=3]; 16079[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];16079 -> 16187[label="",style="solid", color="black", weight=3]; 16185[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16185 -> 16196[label="",style="solid", color="black", weight=3]; 12494 -> 11563[label="",style="dashed", color="red", weight=0]; 12494[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12494 -> 12593[label="",style="dashed", color="magenta", weight=3]; 12494 -> 12594[label="",style="dashed", color="magenta", weight=3]; 12495[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="black",shape="triangle"];12495 -> 12595[label="",style="solid", color="black", weight=3]; 12496[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];12496 -> 12596[label="",style="solid", color="black", weight=3]; 12497 -> 12495[label="",style="dashed", color="red", weight=0]; 12497[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="magenta"];14946[label="Succ wy40000",fontsize=16,color="green",shape="box"];14947[label="Succ wy40000",fontsize=16,color="green",shape="box"];14948 -> 13663[label="",style="dashed", color="red", weight=0]; 14948[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14948 -> 16090[label="",style="dashed", color="magenta", weight=3]; 14948 -> 16091[label="",style="dashed", color="magenta", weight=3]; 14949[label="Zero",fontsize=16,color="green",shape="box"];14950[label="primPlusInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="box"];14950 -> 16092[label="",style="solid", color="black", weight=3]; 14951 -> 13663[label="",style="dashed", color="red", weight=0]; 14951[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14951 -> 16093[label="",style="dashed", color="magenta", weight=3]; 14951 -> 16094[label="",style="dashed", color="magenta", weight=3]; 14952[label="Zero",fontsize=16,color="green",shape="box"];14953[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Pos wy8020)) LT)",fontsize=16,color="black",shape="box"];14953 -> 16095[label="",style="solid", color="black", weight=3]; 14954[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Neg wy8020)) LT)",fontsize=16,color="black",shape="box"];14954 -> 16096[label="",style="solid", color="black", weight=3]; 16080[label="Zero",fontsize=16,color="green",shape="box"];16081[label="Succ wy40000",fontsize=16,color="green",shape="box"];13663[label="primMinusNatS wy725 wy726",fontsize=16,color="burlywood",shape="triangle"];17203[label="wy725/Succ wy7250",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17203[label="",style="solid", color="burlywood", weight=9]; 17203 -> 14986[label="",style="solid", color="burlywood", weight=3]; 17204[label="wy725/Zero",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17204[label="",style="solid", color="burlywood", weight=9]; 17204 -> 14987[label="",style="solid", color="burlywood", weight=3]; 14955 -> 13663[label="",style="dashed", color="red", weight=0]; 14955[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14955 -> 16097[label="",style="dashed", color="magenta", weight=3]; 14955 -> 16098[label="",style="dashed", color="magenta", weight=3]; 14956[label="Zero",fontsize=16,color="green",shape="box"];16082 -> 16188[label="",style="dashed", color="red", weight=0]; 16082[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16082 -> 16189[label="",style="dashed", color="magenta", weight=3]; 16083[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16083 -> 16197[label="",style="solid", color="black", weight=3]; 16084[label="Zero",fontsize=16,color="green",shape="box"];16085[label="Zero",fontsize=16,color="green",shape="box"];16086[label="Zero",fontsize=16,color="green",shape="box"];16087[label="Zero",fontsize=16,color="green",shape="box"];14957 -> 13663[label="",style="dashed", color="red", weight=0]; 14957[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14957 -> 16099[label="",style="dashed", color="magenta", weight=3]; 14957 -> 16100[label="",style="dashed", color="magenta", weight=3]; 14958[label="Zero",fontsize=16,color="green",shape="box"];14959 -> 13663[label="",style="dashed", color="red", weight=0]; 14959[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14959 -> 16101[label="",style="dashed", color="magenta", weight=3]; 14959 -> 16102[label="",style="dashed", color="magenta", weight=3]; 14960[label="Zero",fontsize=16,color="green",shape="box"];16088[label="Zero",fontsize=16,color="green",shape="box"];16089[label="Zero",fontsize=16,color="green",shape="box"];14961 -> 13663[label="",style="dashed", color="red", weight=0]; 14961[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14961 -> 16103[label="",style="dashed", color="magenta", weight=3]; 14961 -> 16104[label="",style="dashed", color="magenta", weight=3]; 14962[label="Zero",fontsize=16,color="green",shape="box"];16105[label="not (esEsOrdering (primCmpNat (Succ wy7740) wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17205[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17205[label="",style="solid", color="burlywood", weight=9]; 17205 -> 16211[label="",style="solid", color="burlywood", weight=3]; 17206[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17206[label="",style="solid", color="burlywood", weight=9]; 17206 -> 16212[label="",style="solid", color="burlywood", weight=3]; 16106[label="not (esEsOrdering (primCmpNat Zero wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17207[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17207[label="",style="solid", color="burlywood", weight=9]; 17207 -> 16213[label="",style="solid", color="burlywood", weight=3]; 17208[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17208[label="",style="solid", color="burlywood", weight=9]; 17208 -> 16214[label="",style="solid", color="burlywood", weight=3]; 16316[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="black",shape="box"];16316 -> 16349[label="",style="solid", color="black", weight=3]; 16317[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16317 -> 16350[label="",style="solid", color="black", weight=3]; 16348[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16348 -> 16366[label="",style="solid", color="black", weight=3]; 11733[label="wy7270",fontsize=16,color="green",shape="box"];11734[label="wy7280",fontsize=16,color="green",shape="box"];11735 -> 12619[label="",style="dashed", color="red", weight=0]; 11735[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy729 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy732)) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy736 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11735 -> 12652[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12653[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12654[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12655[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12656[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12657[label="",style="dashed", color="magenta", weight=3]; 11736 -> 13676[label="",style="dashed", color="red", weight=0]; 11736[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 (not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 (not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)) wy738)",fontsize=16,color="magenta"];11736 -> 13765[label="",style="dashed", color="magenta", weight=3]; 11736 -> 13766[label="",style="dashed", color="magenta", weight=3]; 10485[label="primMinusNatS (Succ wy55700000) Zero",fontsize=16,color="black",shape="box"];10485 -> 10520[label="",style="solid", color="black", weight=3]; 10486[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];10486 -> 10521[label="",style="solid", color="black", weight=3]; 7057[label="primDivNatS0 wy1600 wy1700 (primGEqNatS wy1600 wy1700)",fontsize=16,color="burlywood",shape="box"];17209[label="wy1600/Succ wy16000",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17209[label="",style="solid", color="burlywood", weight=9]; 17209 -> 7151[label="",style="solid", color="burlywood", weight=3]; 17210[label="wy1600/Zero",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17210[label="",style="solid", color="burlywood", weight=9]; 17210 -> 7152[label="",style="solid", color="burlywood", weight=3]; 7058[label="Zero",fontsize=16,color="green",shape="box"];13402[label="Succ wy40000",fontsize=16,color="green",shape="box"];13403[label="not (esEsOrdering (primCmpNat (Succ wy774) wy7730) LT)",fontsize=16,color="burlywood",shape="box"];17211[label="wy7730/Succ wy77300",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17211[label="",style="solid", color="burlywood", weight=9]; 17211 -> 13650[label="",style="solid", color="burlywood", weight=3]; 17212[label="wy7730/Zero",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17212[label="",style="solid", color="burlywood", weight=9]; 17212 -> 13651[label="",style="solid", color="burlywood", weight=3]; 13405[label="Succ wy40000",fontsize=16,color="green",shape="box"];13406[label="Succ wy40000",fontsize=16,color="green",shape="box"];13407[label="primPlusInt (primMinusInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="burlywood",shape="box"];17213[label="wy777/Pos wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17213[label="",style="solid", color="burlywood", weight=9]; 17213 -> 13653[label="",style="solid", color="burlywood", weight=3]; 17214[label="wy777/Neg wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17214[label="",style="solid", color="burlywood", weight=9]; 17214 -> 13654[label="",style="solid", color="burlywood", weight=3]; 13642 -> 5275[label="",style="dashed", color="red", weight=0]; 13642[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];13642 -> 13655[label="",style="dashed", color="magenta", weight=3]; 13642 -> 13656[label="",style="dashed", color="magenta", weight=3]; 13641[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy791",fontsize=16,color="burlywood",shape="triangle"];17215[label="wy791/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17215[label="",style="solid", color="burlywood", weight=9]; 17215 -> 13657[label="",style="solid", color="burlywood", weight=3]; 17216[label="wy791/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17216[label="",style="solid", color="burlywood", weight=9]; 17216 -> 13658[label="",style="solid", color="burlywood", weight=3]; 13643[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];13643 -> 14839[label="",style="solid", color="black", weight=3]; 13408[label="Zero",fontsize=16,color="green",shape="box"];13409[label="Zero",fontsize=16,color="green",shape="box"];13410[label="Zero",fontsize=16,color="green",shape="box"];2539[label="truncateM0 (CnPc wy30 wy31) (Tup2 (properFractionQ wy30 wy31) (CnPc (properFractionR wy30 wy31) wy31))",fontsize=16,color="black",shape="box"];2539 -> 2551[label="",style="solid", color="black", weight=3]; 7423[label="not MyTrue",fontsize=16,color="black",shape="triangle"];7423 -> 10562[label="",style="solid", color="black", weight=3]; 10566[label="MyTrue",fontsize=16,color="green",shape="box"];5551[label="not (esEsOrdering (compareMyInt wy20 wy439) GT)",fontsize=16,color="black",shape="box"];5551 -> 5799[label="",style="solid", color="black", weight=3]; 16186[label="takeWhile (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16186 -> 16198[label="",style="solid", color="black", weight=3]; 16187[label="Nil",fontsize=16,color="green",shape="box"];16196[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16196 -> 16243[label="",style="solid", color="black", weight=3]; 12593[label="wy7460",fontsize=16,color="green",shape="box"];12594[label="wy7450",fontsize=16,color="green",shape="box"];12595 -> 14842[label="",style="dashed", color="red", weight=0]; 12595[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy747 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy750)) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy754 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12595 -> 14875[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14876[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14877[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14878[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14879[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14880[label="",style="dashed", color="magenta", weight=3]; 12596 -> 16126[label="",style="dashed", color="red", weight=0]; 12596[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 (not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 (not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)) wy756)",fontsize=16,color="magenta"];12596 -> 16160[label="",style="dashed", color="magenta", weight=3]; 12596 -> 16161[label="",style="dashed", color="magenta", weight=3]; 16090[label="Zero",fontsize=16,color="green",shape="box"];16091[label="Succ wy40000",fontsize=16,color="green",shape="box"];16092[label="primPlusInt (primMinusInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="burlywood",shape="box"];17217[label="wy798/Pos wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17217[label="",style="solid", color="burlywood", weight=9]; 17217 -> 16199[label="",style="solid", color="burlywood", weight=3]; 17218[label="wy798/Neg wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17218[label="",style="solid", color="burlywood", weight=9]; 17218 -> 16200[label="",style="solid", color="burlywood", weight=3]; 16093[label="Zero",fontsize=16,color="green",shape="box"];16094[label="Succ wy40000",fontsize=16,color="green",shape="box"];16095 -> 14929[label="",style="dashed", color="red", weight=0]; 16095[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16096 -> 14963[label="",style="dashed", color="red", weight=0]; 16096[label="not (esEsOrdering (primCmpNat wy8020 (Succ wy803)) LT)",fontsize=16,color="magenta"];16096 -> 16201[label="",style="dashed", color="magenta", weight=3]; 16096 -> 16202[label="",style="dashed", color="magenta", weight=3]; 14986[label="primMinusNatS (Succ wy7250) wy726",fontsize=16,color="burlywood",shape="box"];17219[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17219[label="",style="solid", color="burlywood", weight=9]; 17219 -> 16203[label="",style="solid", color="burlywood", weight=3]; 17220[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17220[label="",style="solid", color="burlywood", weight=9]; 17220 -> 16204[label="",style="solid", color="burlywood", weight=3]; 14987[label="primMinusNatS Zero wy726",fontsize=16,color="burlywood",shape="box"];17221[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17221[label="",style="solid", color="burlywood", weight=9]; 17221 -> 16205[label="",style="solid", color="burlywood", weight=3]; 17222[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17222[label="",style="solid", color="burlywood", weight=9]; 17222 -> 16206[label="",style="solid", color="burlywood", weight=3]; 16097[label="Zero",fontsize=16,color="green",shape="box"];16098[label="Succ wy40000",fontsize=16,color="green",shape="box"];16189 -> 5275[label="",style="dashed", color="red", weight=0]; 16189[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16189 -> 16207[label="",style="dashed", color="magenta", weight=3]; 16189 -> 16208[label="",style="dashed", color="magenta", weight=3]; 16188[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy811",fontsize=16,color="burlywood",shape="triangle"];17223[label="wy811/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17223[label="",style="solid", color="burlywood", weight=9]; 17223 -> 16209[label="",style="solid", color="burlywood", weight=3]; 17224[label="wy811/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17224[label="",style="solid", color="burlywood", weight=9]; 17224 -> 16210[label="",style="solid", color="burlywood", weight=3]; 16197[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16197 -> 16244[label="",style="solid", color="black", weight=3]; 16099[label="Zero",fontsize=16,color="green",shape="box"];16100[label="Zero",fontsize=16,color="green",shape="box"];16101[label="Zero",fontsize=16,color="green",shape="box"];16102[label="Zero",fontsize=16,color="green",shape="box"];16103[label="Zero",fontsize=16,color="green",shape="box"];16104[label="Zero",fontsize=16,color="green",shape="box"];16211[label="not (esEsOrdering (primCmpNat (Succ wy7740) (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16211 -> 16254[label="",style="solid", color="black", weight=3]; 16212[label="not (esEsOrdering (primCmpNat (Succ wy7740) Zero) LT)",fontsize=16,color="black",shape="box"];16212 -> 16255[label="",style="solid", color="black", weight=3]; 16213[label="not (esEsOrdering (primCmpNat Zero (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16213 -> 16256[label="",style="solid", color="black", weight=3]; 16214[label="not (esEsOrdering (primCmpNat Zero Zero) LT)",fontsize=16,color="black",shape="box"];16214 -> 16257[label="",style="solid", color="black", weight=3]; 16349[label="takeWhile (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16349 -> 16367[label="",style="solid", color="black", weight=3]; 16350[label="Nil",fontsize=16,color="green",shape="box"];16366[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16366 -> 16446[label="",style="solid", color="black", weight=3]; 12652 -> 5128[label="",style="dashed", color="red", weight=0]; 12652[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12652 -> 13413[label="",style="dashed", color="magenta", weight=3]; 12652 -> 13414[label="",style="dashed", color="magenta", weight=3]; 12653 -> 12661[label="",style="dashed", color="red", weight=0]; 12653[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT)",fontsize=16,color="magenta"];12653 -> 12670[label="",style="dashed", color="magenta", weight=3]; 12653 -> 12671[label="",style="dashed", color="magenta", weight=3]; 12654 -> 5128[label="",style="dashed", color="red", weight=0]; 12654[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12654 -> 13415[label="",style="dashed", color="magenta", weight=3]; 12654 -> 13416[label="",style="dashed", color="magenta", weight=3]; 12655 -> 12661[label="",style="dashed", color="red", weight=0]; 12655[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)",fontsize=16,color="magenta"];12655 -> 12672[label="",style="dashed", color="magenta", weight=3]; 12655 -> 12673[label="",style="dashed", color="magenta", weight=3]; 12656 -> 12676[label="",style="dashed", color="red", weight=0]; 12656[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734",fontsize=16,color="magenta"];12656 -> 12683[label="",style="dashed", color="magenta", weight=3]; 12656 -> 12684[label="",style="dashed", color="magenta", weight=3]; 12656 -> 12685[label="",style="dashed", color="magenta", weight=3]; 12657 -> 5128[label="",style="dashed", color="red", weight=0]; 12657[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12657 -> 13417[label="",style="dashed", color="magenta", weight=3]; 12657 -> 13418[label="",style="dashed", color="magenta", weight=3]; 13765 -> 14825[label="",style="dashed", color="red", weight=0]; 13765[label="not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT)",fontsize=16,color="magenta"];13765 -> 14830[label="",style="dashed", color="magenta", weight=3]; 13766 -> 14825[label="",style="dashed", color="red", weight=0]; 13766[label="not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)",fontsize=16,color="magenta"];13766 -> 14831[label="",style="dashed", color="magenta", weight=3]; 10520[label="Succ wy55700000",fontsize=16,color="green",shape="box"];10521[label="Zero",fontsize=16,color="green",shape="box"];7151[label="primDivNatS0 (Succ wy16000) wy1700 (primGEqNatS (Succ wy16000) wy1700)",fontsize=16,color="burlywood",shape="box"];17225[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17225[label="",style="solid", color="burlywood", weight=9]; 17225 -> 7184[label="",style="solid", color="burlywood", weight=3]; 17226[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17226[label="",style="solid", color="burlywood", weight=9]; 17226 -> 7185[label="",style="solid", color="burlywood", weight=3]; 7152[label="primDivNatS0 Zero wy1700 (primGEqNatS Zero wy1700)",fontsize=16,color="burlywood",shape="box"];17227[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17227[label="",style="solid", color="burlywood", weight=9]; 17227 -> 7186[label="",style="solid", color="burlywood", weight=3]; 17228[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17228[label="",style="solid", color="burlywood", weight=9]; 17228 -> 7187[label="",style="solid", color="burlywood", weight=3]; 13650[label="not (esEsOrdering (primCmpNat (Succ wy774) (Succ wy77300)) LT)",fontsize=16,color="black",shape="box"];13650 -> 14963[label="",style="solid", color="black", weight=3]; 13651[label="not (esEsOrdering (primCmpNat (Succ wy774) Zero) LT)",fontsize=16,color="black",shape="box"];13651 -> 14964[label="",style="solid", color="black", weight=3]; 13653[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Pos wy7770)) wy776",fontsize=16,color="black",shape="box"];13653 -> 14965[label="",style="solid", color="black", weight=3]; 13654[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Neg wy7770)) wy776",fontsize=16,color="black",shape="box"];13654 -> 14966[label="",style="solid", color="black", weight=3]; 13655[label="wy738",fontsize=16,color="green",shape="box"];13656[label="wy735",fontsize=16,color="green",shape="box"];13657[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];13657 -> 14967[label="",style="solid", color="black", weight=3]; 13658[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];13658 -> 14968[label="",style="solid", color="black", weight=3]; 14839[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="triangle"];14839 -> 14969[label="",style="solid", color="black", weight=3]; 2551[label="properFractionQ wy30 wy31",fontsize=16,color="black",shape="box"];2551 -> 2559[label="",style="solid", color="black", weight=3]; 10562[label="MyFalse",fontsize=16,color="green",shape="box"];5799[label="not (esEsOrdering (primCmpInt wy20 wy439) GT)",fontsize=16,color="burlywood",shape="box"];17229[label="wy20/Pos wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17229[label="",style="solid", color="burlywood", weight=9]; 17229 -> 6034[label="",style="solid", color="burlywood", weight=3]; 17230[label="wy20/Neg wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17230[label="",style="solid", color="burlywood", weight=9]; 17230 -> 6035[label="",style="solid", color="burlywood", weight=3]; 16198[label="takeWhile2 (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16198 -> 16245[label="",style="solid", color="black", weight=3]; 16243[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17231[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17231[label="",style="solid", color="burlywood", weight=9]; 17231 -> 16272[label="",style="solid", color="burlywood", weight=3]; 17232[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17232[label="",style="solid", color="burlywood", weight=9]; 17232 -> 16273[label="",style="solid", color="burlywood", weight=3]; 14875 -> 5128[label="",style="dashed", color="red", weight=0]; 14875[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14875 -> 14970[label="",style="dashed", color="magenta", weight=3]; 14875 -> 14971[label="",style="dashed", color="magenta", weight=3]; 14876 -> 5128[label="",style="dashed", color="red", weight=0]; 14876[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14876 -> 14972[label="",style="dashed", color="magenta", weight=3]; 14876 -> 14973[label="",style="dashed", color="magenta", weight=3]; 14877 -> 14894[label="",style="dashed", color="red", weight=0]; 14877[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752",fontsize=16,color="magenta"];14877 -> 14901[label="",style="dashed", color="magenta", weight=3]; 14877 -> 14902[label="",style="dashed", color="magenta", weight=3]; 14877 -> 14903[label="",style="dashed", color="magenta", weight=3]; 14878 -> 14915[label="",style="dashed", color="red", weight=0]; 14878[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)",fontsize=16,color="magenta"];14878 -> 14924[label="",style="dashed", color="magenta", weight=3]; 14878 -> 14925[label="",style="dashed", color="magenta", weight=3]; 14879 -> 5128[label="",style="dashed", color="red", weight=0]; 14879[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14879 -> 14974[label="",style="dashed", color="magenta", weight=3]; 14879 -> 14975[label="",style="dashed", color="magenta", weight=3]; 14880 -> 14915[label="",style="dashed", color="red", weight=0]; 14880[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT)",fontsize=16,color="magenta"];14880 -> 14926[label="",style="dashed", color="magenta", weight=3]; 14880 -> 14927[label="",style="dashed", color="magenta", weight=3]; 16160 -> 16170[label="",style="dashed", color="red", weight=0]; 16160[label="not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT)",fontsize=16,color="magenta"];16160 -> 16175[label="",style="dashed", color="magenta", weight=3]; 16161 -> 16170[label="",style="dashed", color="red", weight=0]; 16161[label="not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)",fontsize=16,color="magenta"];16161 -> 16176[label="",style="dashed", color="magenta", weight=3]; 16199[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Pos wy7980)) wy797",fontsize=16,color="black",shape="box"];16199 -> 16246[label="",style="solid", color="black", weight=3]; 16200[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Neg wy7980)) wy797",fontsize=16,color="black",shape="box"];16200 -> 16247[label="",style="solid", color="black", weight=3]; 16201[label="Succ wy803",fontsize=16,color="green",shape="box"];16202[label="wy8020",fontsize=16,color="green",shape="box"];16203[label="primMinusNatS (Succ wy7250) (Succ wy7260)",fontsize=16,color="black",shape="box"];16203 -> 16248[label="",style="solid", color="black", weight=3]; 16204[label="primMinusNatS (Succ wy7250) Zero",fontsize=16,color="black",shape="box"];16204 -> 16249[label="",style="solid", color="black", weight=3]; 16205[label="primMinusNatS Zero (Succ wy7260)",fontsize=16,color="black",shape="box"];16205 -> 16250[label="",style="solid", color="black", weight=3]; 16206[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];16206 -> 16251[label="",style="solid", color="black", weight=3]; 16207[label="wy756",fontsize=16,color="green",shape="box"];16208[label="wy753",fontsize=16,color="green",shape="box"];16209[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16209 -> 16252[label="",style="solid", color="black", weight=3]; 16210[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16210 -> 16253[label="",style="solid", color="black", weight=3]; 16244[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="triangle"];16244 -> 16274[label="",style="solid", color="black", weight=3]; 16254 -> 14963[label="",style="dashed", color="red", weight=0]; 16254[label="not (esEsOrdering (primCmpNat wy7740 wy773000) LT)",fontsize=16,color="magenta"];16254 -> 16289[label="",style="dashed", color="magenta", weight=3]; 16254 -> 16290[label="",style="dashed", color="magenta", weight=3]; 16255 -> 13404[label="",style="dashed", color="red", weight=0]; 16255[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16256 -> 14929[label="",style="dashed", color="red", weight=0]; 16256[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16257 -> 14908[label="",style="dashed", color="red", weight=0]; 16257[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16367[label="takeWhile2 (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16367 -> 16447[label="",style="solid", color="black", weight=3]; 16446[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17233[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17233[label="",style="solid", color="burlywood", weight=9]; 17233 -> 16453[label="",style="solid", color="burlywood", weight=3]; 17234[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17234[label="",style="solid", color="burlywood", weight=9]; 17234 -> 16454[label="",style="solid", color="burlywood", weight=3]; 13413[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="black",shape="triangle"];13413 -> 13663[label="",style="solid", color="black", weight=3]; 13414[label="Succ wy726",fontsize=16,color="green",shape="box"];12670[label="wy730",fontsize=16,color="green",shape="box"];12671 -> 5128[label="",style="dashed", color="red", weight=0]; 12671[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12671 -> 13429[label="",style="dashed", color="magenta", weight=3]; 12671 -> 13430[label="",style="dashed", color="magenta", weight=3]; 13415 -> 13413[label="",style="dashed", color="red", weight=0]; 13415[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13416[label="Succ wy726",fontsize=16,color="green",shape="box"];12672[label="wy737",fontsize=16,color="green",shape="box"];12673 -> 5128[label="",style="dashed", color="red", weight=0]; 12673[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12673 -> 13431[label="",style="dashed", color="magenta", weight=3]; 12673 -> 13432[label="",style="dashed", color="magenta", weight=3]; 12683[label="wy734",fontsize=16,color="green",shape="box"];12684[label="wy733",fontsize=16,color="green",shape="box"];12685 -> 5128[label="",style="dashed", color="red", weight=0]; 12685[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12685 -> 13433[label="",style="dashed", color="magenta", weight=3]; 12685 -> 13434[label="",style="dashed", color="magenta", weight=3]; 13417 -> 13413[label="",style="dashed", color="red", weight=0]; 13417[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13418[label="Succ wy726",fontsize=16,color="green",shape="box"];14830[label="wy730",fontsize=16,color="green",shape="box"];14831[label="wy737",fontsize=16,color="green",shape="box"];7184[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS (Succ wy16000) (Succ wy17000))",fontsize=16,color="black",shape="box"];7184 -> 7244[label="",style="solid", color="black", weight=3]; 7185[label="primDivNatS0 (Succ wy16000) Zero (primGEqNatS (Succ wy16000) Zero)",fontsize=16,color="black",shape="box"];7185 -> 7245[label="",style="solid", color="black", weight=3]; 7186[label="primDivNatS0 Zero (Succ wy17000) (primGEqNatS Zero (Succ wy17000))",fontsize=16,color="black",shape="box"];7186 -> 7246[label="",style="solid", color="black", weight=3]; 7187[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];7187 -> 7247[label="",style="solid", color="black", weight=3]; 14964 -> 13404[label="",style="dashed", color="red", weight=0]; 14964[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14965[label="primPlusInt (primMinusNat (Succ wy778) wy7770) wy776",fontsize=16,color="burlywood",shape="box"];17235[label="wy7770/Succ wy77700",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17235[label="",style="solid", color="burlywood", weight=9]; 17235 -> 16107[label="",style="solid", color="burlywood", weight=3]; 17236[label="wy7770/Zero",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17236[label="",style="solid", color="burlywood", weight=9]; 17236 -> 16108[label="",style="solid", color="burlywood", weight=3]; 14966 -> 16562[label="",style="dashed", color="red", weight=0]; 14966[label="primPlusInt (Pos (primPlusNat (Succ wy778) wy7770)) wy776",fontsize=16,color="magenta"];14966 -> 16563[label="",style="dashed", color="magenta", weight=3]; 14966 -> 16564[label="",style="dashed", color="magenta", weight=3]; 14967[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];14967 -> 16111[label="",style="dashed", color="green", weight=3]; 14968[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];14968 -> 16112[label="",style="solid", color="black", weight=3]; 14969[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];14969 -> 16113[label="",style="solid", color="black", weight=3]; 2559[label="properFractionQ1 wy30 wy31 (properFractionVu30 wy30 wy31)",fontsize=16,color="black",shape="box"];2559 -> 2567[label="",style="solid", color="black", weight=3]; 6034[label="not (esEsOrdering (primCmpInt (Pos wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17237[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17237[label="",style="solid", color="burlywood", weight=9]; 17237 -> 7263[label="",style="solid", color="burlywood", weight=3]; 17238[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17238[label="",style="solid", color="burlywood", weight=9]; 17238 -> 7264[label="",style="solid", color="burlywood", weight=3]; 6035[label="not (esEsOrdering (primCmpInt (Neg wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17239[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17239[label="",style="solid", color="burlywood", weight=9]; 17239 -> 7265[label="",style="solid", color="burlywood", weight=3]; 17240[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17240[label="",style="solid", color="burlywood", weight=9]; 17240 -> 7266[label="",style="solid", color="burlywood", weight=3]; 16245 -> 14904[label="",style="dashed", color="red", weight=0]; 16245[label="takeWhile1 (flip ltEsMyInt wy735) (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))) (flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="magenta"];16245 -> 16275[label="",style="dashed", color="magenta", weight=3]; 16245 -> 16276[label="",style="dashed", color="magenta", weight=3]; 16245 -> 16277[label="",style="dashed", color="magenta", weight=3]; 16245 -> 16278[label="",style="dashed", color="magenta", weight=3]; 16272[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17241[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17241[label="",style="solid", color="burlywood", weight=9]; 17241 -> 16318[label="",style="solid", color="burlywood", weight=3]; 17242[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17242[label="",style="solid", color="burlywood", weight=9]; 17242 -> 16319[label="",style="solid", color="burlywood", weight=3]; 16273[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17243[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17243[label="",style="solid", color="burlywood", weight=9]; 17243 -> 16320[label="",style="solid", color="burlywood", weight=3]; 17244[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17244[label="",style="solid", color="burlywood", weight=9]; 17244 -> 16321[label="",style="solid", color="burlywood", weight=3]; 14970 -> 13663[label="",style="dashed", color="red", weight=0]; 14970[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14970 -> 16114[label="",style="dashed", color="magenta", weight=3]; 14970 -> 16115[label="",style="dashed", color="magenta", weight=3]; 14971[label="Succ wy744",fontsize=16,color="green",shape="box"];14972 -> 13663[label="",style="dashed", color="red", weight=0]; 14972[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14972 -> 16116[label="",style="dashed", color="magenta", weight=3]; 14972 -> 16117[label="",style="dashed", color="magenta", weight=3]; 14973[label="Succ wy744",fontsize=16,color="green",shape="box"];14901 -> 5128[label="",style="dashed", color="red", weight=0]; 14901[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14901 -> 14976[label="",style="dashed", color="magenta", weight=3]; 14901 -> 14977[label="",style="dashed", color="magenta", weight=3]; 14902[label="wy752",fontsize=16,color="green",shape="box"];14903[label="wy751",fontsize=16,color="green",shape="box"];14924[label="wy755",fontsize=16,color="green",shape="box"];14925 -> 5128[label="",style="dashed", color="red", weight=0]; 14925[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14925 -> 14978[label="",style="dashed", color="magenta", weight=3]; 14925 -> 14979[label="",style="dashed", color="magenta", weight=3]; 14974 -> 13663[label="",style="dashed", color="red", weight=0]; 14974[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14974 -> 16118[label="",style="dashed", color="magenta", weight=3]; 14974 -> 16119[label="",style="dashed", color="magenta", weight=3]; 14975[label="Succ wy744",fontsize=16,color="green",shape="box"];14926[label="wy748",fontsize=16,color="green",shape="box"];14927 -> 5128[label="",style="dashed", color="red", weight=0]; 14927[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14927 -> 14980[label="",style="dashed", color="magenta", weight=3]; 14927 -> 14981[label="",style="dashed", color="magenta", weight=3]; 16175[label="wy748",fontsize=16,color="green",shape="box"];16176[label="wy755",fontsize=16,color="green",shape="box"];16246 -> 16736[label="",style="dashed", color="red", weight=0]; 16246[label="primPlusInt (Neg (primPlusNat (Succ wy799) wy7980)) wy797",fontsize=16,color="magenta"];16246 -> 16737[label="",style="dashed", color="magenta", weight=3]; 16246 -> 16738[label="",style="dashed", color="magenta", weight=3]; 16247 -> 16215[label="",style="dashed", color="red", weight=0]; 16247[label="primPlusInt (primMinusNat wy7980 (Succ wy799)) wy797",fontsize=16,color="magenta"];16247 -> 16281[label="",style="dashed", color="magenta", weight=3]; 16247 -> 16282[label="",style="dashed", color="magenta", weight=3]; 16247 -> 16283[label="",style="dashed", color="magenta", weight=3]; 16248 -> 13663[label="",style="dashed", color="red", weight=0]; 16248[label="primMinusNatS wy7250 wy7260",fontsize=16,color="magenta"];16248 -> 16284[label="",style="dashed", color="magenta", weight=3]; 16248 -> 16285[label="",style="dashed", color="magenta", weight=3]; 16249[label="Succ wy7250",fontsize=16,color="green",shape="box"];16250[label="Zero",fontsize=16,color="green",shape="box"];16251[label="Zero",fontsize=16,color="green",shape="box"];16252[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16252 -> 16286[label="",style="dashed", color="green", weight=3]; 16253[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16253 -> 16287[label="",style="solid", color="black", weight=3]; 16274[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16274 -> 16322[label="",style="solid", color="black", weight=3]; 16289[label="wy773000",fontsize=16,color="green",shape="box"];16290[label="wy7740",fontsize=16,color="green",shape="box"];16447 -> 16232[label="",style="dashed", color="red", weight=0]; 16447[label="takeWhile1 (flip ltEsMyInt wy753) (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))) (flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="magenta"];16447 -> 16455[label="",style="dashed", color="magenta", weight=3]; 16447 -> 16456[label="",style="dashed", color="magenta", weight=3]; 16447 -> 16457[label="",style="dashed", color="magenta", weight=3]; 16447 -> 16458[label="",style="dashed", color="magenta", weight=3]; 16453[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17245[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17245[label="",style="solid", color="burlywood", weight=9]; 17245 -> 16464[label="",style="solid", color="burlywood", weight=3]; 17246[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17246[label="",style="solid", color="burlywood", weight=9]; 17246 -> 16465[label="",style="solid", color="burlywood", weight=3]; 16454[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17247[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17247[label="",style="solid", color="burlywood", weight=9]; 17247 -> 16466[label="",style="solid", color="burlywood", weight=3]; 17248[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17248[label="",style="solid", color="burlywood", weight=9]; 17248 -> 16467[label="",style="solid", color="burlywood", weight=3]; 13429 -> 13413[label="",style="dashed", color="red", weight=0]; 13429[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13430[label="Succ wy726",fontsize=16,color="green",shape="box"];13431 -> 13413[label="",style="dashed", color="red", weight=0]; 13431[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13432[label="Succ wy726",fontsize=16,color="green",shape="box"];13433 -> 13413[label="",style="dashed", color="red", weight=0]; 13433[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13434[label="Succ wy726",fontsize=16,color="green",shape="box"];7244 -> 17027[label="",style="dashed", color="red", weight=0]; 7244[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS wy16000 wy17000)",fontsize=16,color="magenta"];7244 -> 17028[label="",style="dashed", color="magenta", weight=3]; 7244 -> 17029[label="",style="dashed", color="magenta", weight=3]; 7244 -> 17030[label="",style="dashed", color="magenta", weight=3]; 7244 -> 17031[label="",style="dashed", color="magenta", weight=3]; 7245[label="primDivNatS0 (Succ wy16000) Zero MyTrue",fontsize=16,color="black",shape="box"];7245 -> 7305[label="",style="solid", color="black", weight=3]; 7246[label="primDivNatS0 Zero (Succ wy17000) MyFalse",fontsize=16,color="black",shape="box"];7246 -> 7306[label="",style="solid", color="black", weight=3]; 7247[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];7247 -> 7307[label="",style="solid", color="black", weight=3]; 16107[label="primPlusInt (primMinusNat (Succ wy778) (Succ wy77700)) wy776",fontsize=16,color="black",shape="box"];16107 -> 16215[label="",style="solid", color="black", weight=3]; 16108[label="primPlusInt (primMinusNat (Succ wy778) Zero) wy776",fontsize=16,color="black",shape="box"];16108 -> 16216[label="",style="solid", color="black", weight=3]; 16563[label="wy776",fontsize=16,color="green",shape="box"];16564 -> 16336[label="",style="dashed", color="red", weight=0]; 16564[label="primPlusNat (Succ wy778) wy7770",fontsize=16,color="magenta"];16564 -> 16572[label="",style="dashed", color="magenta", weight=3]; 16562[label="primPlusInt (Pos wy824) wy734",fontsize=16,color="burlywood",shape="triangle"];17249[label="wy734/Pos wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17249[label="",style="solid", color="burlywood", weight=9]; 17249 -> 16573[label="",style="solid", color="burlywood", weight=3]; 17250[label="wy734/Neg wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17250[label="",style="solid", color="burlywood", weight=9]; 17250 -> 16574[label="",style="solid", color="burlywood", weight=3]; 16111[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16111 -> 16219[label="",style="solid", color="black", weight=3]; 16112[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16112 -> 16220[label="",style="solid", color="black", weight=3]; 16113[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16113 -> 16221[label="",style="solid", color="black", weight=3]; 2567 -> 1994[label="",style="dashed", color="red", weight=0]; 2567[label="properFractionQ1 wy30 wy31 (quotRemMyInt wy30 wy31)",fontsize=16,color="magenta"];2567 -> 3560[label="",style="dashed", color="magenta", weight=3]; 2567 -> 3561[label="",style="dashed", color="magenta", weight=3]; 7263[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17251[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17251[label="",style="solid", color="burlywood", weight=9]; 17251 -> 7318[label="",style="solid", color="burlywood", weight=3]; 17252[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17252[label="",style="solid", color="burlywood", weight=9]; 17252 -> 7319[label="",style="solid", color="burlywood", weight=3]; 7264[label="not (esEsOrdering (primCmpInt (Pos Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17253[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17253[label="",style="solid", color="burlywood", weight=9]; 17253 -> 7320[label="",style="solid", color="burlywood", weight=3]; 17254[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17254[label="",style="solid", color="burlywood", weight=9]; 17254 -> 7321[label="",style="solid", color="burlywood", weight=3]; 7265[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17255[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17255[label="",style="solid", color="burlywood", weight=9]; 17255 -> 7322[label="",style="solid", color="burlywood", weight=3]; 17256[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17256[label="",style="solid", color="burlywood", weight=9]; 17256 -> 7323[label="",style="solid", color="burlywood", weight=3]; 7266[label="not (esEsOrdering (primCmpInt (Neg Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17257[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17257[label="",style="solid", color="burlywood", weight=9]; 17257 -> 7324[label="",style="solid", color="burlywood", weight=3]; 17258[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17258[label="",style="solid", color="burlywood", weight=9]; 17258 -> 7325[label="",style="solid", color="burlywood", weight=3]; 16275[label="wy732",fontsize=16,color="green",shape="box"];16276 -> 5275[label="",style="dashed", color="red", weight=0]; 16276[label="flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734)",fontsize=16,color="magenta"];16276 -> 16323[label="",style="dashed", color="magenta", weight=3]; 16276 -> 16324[label="",style="dashed", color="magenta", weight=3]; 16277[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="triangle"];16277 -> 16325[label="",style="solid", color="black", weight=3]; 16278 -> 16277[label="",style="dashed", color="red", weight=0]; 16278[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16318[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17259[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17259[label="",style="solid", color="burlywood", weight=9]; 17259 -> 16351[label="",style="solid", color="burlywood", weight=3]; 17260[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17260[label="",style="solid", color="burlywood", weight=9]; 17260 -> 16352[label="",style="solid", color="burlywood", weight=3]; 16319[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17261[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17261[label="",style="solid", color="burlywood", weight=9]; 17261 -> 16353[label="",style="solid", color="burlywood", weight=3]; 17262[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17262[label="",style="solid", color="burlywood", weight=9]; 17262 -> 16354[label="",style="solid", color="burlywood", weight=3]; 16320[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17263[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17263[label="",style="solid", color="burlywood", weight=9]; 17263 -> 16355[label="",style="solid", color="burlywood", weight=3]; 17264[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17264[label="",style="solid", color="burlywood", weight=9]; 17264 -> 16356[label="",style="solid", color="burlywood", weight=3]; 16321[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17265[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17265[label="",style="solid", color="burlywood", weight=9]; 17265 -> 16357[label="",style="solid", color="burlywood", weight=3]; 17266[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17266[label="",style="solid", color="burlywood", weight=9]; 17266 -> 16358[label="",style="solid", color="burlywood", weight=3]; 16114[label="Succ wy744",fontsize=16,color="green",shape="box"];16115[label="Succ wy743",fontsize=16,color="green",shape="box"];16116[label="Succ wy744",fontsize=16,color="green",shape="box"];16117[label="Succ wy743",fontsize=16,color="green",shape="box"];14976 -> 13663[label="",style="dashed", color="red", weight=0]; 14976[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14976 -> 16120[label="",style="dashed", color="magenta", weight=3]; 14976 -> 16121[label="",style="dashed", color="magenta", weight=3]; 14977[label="Succ wy744",fontsize=16,color="green",shape="box"];14978 -> 13663[label="",style="dashed", color="red", weight=0]; 14978[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14978 -> 16122[label="",style="dashed", color="magenta", weight=3]; 14978 -> 16123[label="",style="dashed", color="magenta", weight=3]; 14979[label="Succ wy744",fontsize=16,color="green",shape="box"];16118[label="Succ wy744",fontsize=16,color="green",shape="box"];16119[label="Succ wy743",fontsize=16,color="green",shape="box"];14980 -> 13663[label="",style="dashed", color="red", weight=0]; 14980[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14980 -> 16124[label="",style="dashed", color="magenta", weight=3]; 14980 -> 16125[label="",style="dashed", color="magenta", weight=3]; 14981[label="Succ wy744",fontsize=16,color="green",shape="box"];16737 -> 16513[label="",style="dashed", color="red", weight=0]; 16737[label="primPlusNat (Succ wy799) wy7980",fontsize=16,color="magenta"];16737 -> 16742[label="",style="dashed", color="magenta", weight=3]; 16737 -> 16743[label="",style="dashed", color="magenta", weight=3]; 16738[label="wy797",fontsize=16,color="green",shape="box"];16736[label="primPlusInt (Neg wy833) wy752",fontsize=16,color="burlywood",shape="triangle"];17267[label="wy752/Pos wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17267[label="",style="solid", color="burlywood", weight=9]; 17267 -> 16744[label="",style="solid", color="burlywood", weight=3]; 17268[label="wy752/Neg wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17268[label="",style="solid", color="burlywood", weight=9]; 17268 -> 16745[label="",style="solid", color="burlywood", weight=3]; 16281[label="wy797",fontsize=16,color="green",shape="box"];16282[label="Succ wy799",fontsize=16,color="green",shape="box"];16283[label="wy7980",fontsize=16,color="green",shape="box"];16215[label="primPlusInt (primMinusNat wy778 wy77700) wy776",fontsize=16,color="burlywood",shape="triangle"];17269[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17269[label="",style="solid", color="burlywood", weight=9]; 17269 -> 16258[label="",style="solid", color="burlywood", weight=3]; 17270[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17270[label="",style="solid", color="burlywood", weight=9]; 17270 -> 16259[label="",style="solid", color="burlywood", weight=3]; 16284[label="wy7260",fontsize=16,color="green",shape="box"];16285[label="wy7250",fontsize=16,color="green",shape="box"];16286[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16286 -> 16328[label="",style="solid", color="black", weight=3]; 16287[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16287 -> 16329[label="",style="solid", color="black", weight=3]; 16322[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16322 -> 16359[label="",style="solid", color="black", weight=3]; 16455 -> 5275[label="",style="dashed", color="red", weight=0]; 16455[label="flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752)",fontsize=16,color="magenta"];16455 -> 16468[label="",style="dashed", color="magenta", weight=3]; 16455 -> 16469[label="",style="dashed", color="magenta", weight=3]; 16456[label="wy750",fontsize=16,color="green",shape="box"];16457[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="triangle"];16457 -> 16470[label="",style="solid", color="black", weight=3]; 16458 -> 16457[label="",style="dashed", color="red", weight=0]; 16458[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16464[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17271[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17271[label="",style="solid", color="burlywood", weight=9]; 17271 -> 16522[label="",style="solid", color="burlywood", weight=3]; 17272[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17272[label="",style="solid", color="burlywood", weight=9]; 17272 -> 16523[label="",style="solid", color="burlywood", weight=3]; 16465[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17273[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17273[label="",style="solid", color="burlywood", weight=9]; 17273 -> 16524[label="",style="solid", color="burlywood", weight=3]; 17274[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17274[label="",style="solid", color="burlywood", weight=9]; 17274 -> 16525[label="",style="solid", color="burlywood", weight=3]; 16466[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17275[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17275[label="",style="solid", color="burlywood", weight=9]; 17275 -> 16526[label="",style="solid", color="burlywood", weight=3]; 17276[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17276[label="",style="solid", color="burlywood", weight=9]; 17276 -> 16527[label="",style="solid", color="burlywood", weight=3]; 16467[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17277[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17277[label="",style="solid", color="burlywood", weight=9]; 17277 -> 16528[label="",style="solid", color="burlywood", weight=3]; 17278[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17278[label="",style="solid", color="burlywood", weight=9]; 17278 -> 16529[label="",style="solid", color="burlywood", weight=3]; 17028[label="wy16000",fontsize=16,color="green",shape="box"];17029[label="wy16000",fontsize=16,color="green",shape="box"];17030[label="wy17000",fontsize=16,color="green",shape="box"];17031[label="wy17000",fontsize=16,color="green",shape="box"];17027[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy852 wy853)",fontsize=16,color="burlywood",shape="triangle"];17279[label="wy852/Succ wy8520",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17279[label="",style="solid", color="burlywood", weight=9]; 17279 -> 17068[label="",style="solid", color="burlywood", weight=3]; 17280[label="wy852/Zero",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17280[label="",style="solid", color="burlywood", weight=9]; 17280 -> 17069[label="",style="solid", color="burlywood", weight=3]; 7305[label="Succ (primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7305 -> 7338[label="",style="dashed", color="green", weight=3]; 7306[label="Zero",fontsize=16,color="green",shape="box"];7307[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7307 -> 7339[label="",style="dashed", color="green", weight=3]; 16216 -> 16562[label="",style="dashed", color="red", weight=0]; 16216[label="primPlusInt (Pos (Succ wy778)) wy776",fontsize=16,color="magenta"];16216 -> 16565[label="",style="dashed", color="magenta", weight=3]; 16216 -> 16566[label="",style="dashed", color="magenta", weight=3]; 16572[label="wy7770",fontsize=16,color="green",shape="box"];16336[label="primPlusNat (Succ wy778) wy7760",fontsize=16,color="burlywood",shape="triangle"];17281[label="wy7760/Succ wy77600",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17281[label="",style="solid", color="burlywood", weight=9]; 17281 -> 16405[label="",style="solid", color="burlywood", weight=3]; 17282[label="wy7760/Zero",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17282[label="",style="solid", color="burlywood", weight=9]; 17282 -> 16406[label="",style="solid", color="burlywood", weight=3]; 16573[label="primPlusInt (Pos wy824) (Pos wy7340)",fontsize=16,color="black",shape="box"];16573 -> 16640[label="",style="solid", color="black", weight=3]; 16574[label="primPlusInt (Pos wy824) (Neg wy7340)",fontsize=16,color="black",shape="box"];16574 -> 16641[label="",style="solid", color="black", weight=3]; 16219 -> 16265[label="",style="dashed", color="red", weight=0]; 16219[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16219 -> 16266[label="",style="dashed", color="magenta", weight=3]; 16220[label="Nil",fontsize=16,color="green",shape="box"];16221[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16221 -> 16288[label="",style="solid", color="black", weight=3]; 3560[label="wy30",fontsize=16,color="green",shape="box"];3561[label="wy31",fontsize=16,color="green",shape="box"];1994[label="properFractionQ1 wy16 wy17 (quotRemMyInt wy16 wy17)",fontsize=16,color="black",shape="triangle"];1994 -> 2088[label="",style="solid", color="black", weight=3]; 7318[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7318 -> 7350[label="",style="solid", color="black", weight=3]; 7319[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7319 -> 7351[label="",style="solid", color="black", weight=3]; 7320[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17283[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17283[label="",style="solid", color="burlywood", weight=9]; 17283 -> 7352[label="",style="solid", color="burlywood", weight=3]; 17284[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17284[label="",style="solid", color="burlywood", weight=9]; 17284 -> 7353[label="",style="solid", color="burlywood", weight=3]; 7321[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17285[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17285[label="",style="solid", color="burlywood", weight=9]; 17285 -> 7354[label="",style="solid", color="burlywood", weight=3]; 17286[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17286[label="",style="solid", color="burlywood", weight=9]; 17286 -> 7355[label="",style="solid", color="burlywood", weight=3]; 7322[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7322 -> 7356[label="",style="solid", color="black", weight=3]; 7323[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7323 -> 7357[label="",style="solid", color="black", weight=3]; 7324[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17287[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17287[label="",style="solid", color="burlywood", weight=9]; 17287 -> 7358[label="",style="solid", color="burlywood", weight=3]; 17288[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17288[label="",style="solid", color="burlywood", weight=9]; 17288 -> 7359[label="",style="solid", color="burlywood", weight=3]; 7325[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17289[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17289[label="",style="solid", color="burlywood", weight=9]; 17289 -> 7360[label="",style="solid", color="burlywood", weight=3]; 17290[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17290[label="",style="solid", color="burlywood", weight=9]; 17290 -> 7361[label="",style="solid", color="burlywood", weight=3]; 16323 -> 16277[label="",style="dashed", color="red", weight=0]; 16323[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16324[label="wy735",fontsize=16,color="green",shape="box"];16325[label="primPlusInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="box"];16325 -> 16360[label="",style="solid", color="black", weight=3]; 16351[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16351 -> 16368[label="",style="solid", color="black", weight=3]; 16352[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16352 -> 16369[label="",style="solid", color="black", weight=3]; 16353[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17291[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17291[label="",style="solid", color="burlywood", weight=9]; 17291 -> 16370[label="",style="solid", color="burlywood", weight=3]; 17292[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17292[label="",style="solid", color="burlywood", weight=9]; 17292 -> 16371[label="",style="solid", color="burlywood", weight=3]; 16354[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17293[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17293[label="",style="solid", color="burlywood", weight=9]; 17293 -> 16372[label="",style="solid", color="burlywood", weight=3]; 17294[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17294[label="",style="solid", color="burlywood", weight=9]; 17294 -> 16373[label="",style="solid", color="burlywood", weight=3]; 16355[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16355 -> 16374[label="",style="solid", color="black", weight=3]; 16356[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16356 -> 16375[label="",style="solid", color="black", weight=3]; 16357[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17295[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17295[label="",style="solid", color="burlywood", weight=9]; 17295 -> 16376[label="",style="solid", color="burlywood", weight=3]; 17296[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17296[label="",style="solid", color="burlywood", weight=9]; 17296 -> 16377[label="",style="solid", color="burlywood", weight=3]; 16358[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17297[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17297[label="",style="solid", color="burlywood", weight=9]; 17297 -> 16378[label="",style="solid", color="burlywood", weight=3]; 17298[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17298[label="",style="solid", color="burlywood", weight=9]; 17298 -> 16379[label="",style="solid", color="burlywood", weight=3]; 16120[label="Succ wy744",fontsize=16,color="green",shape="box"];16121[label="Succ wy743",fontsize=16,color="green",shape="box"];16122[label="Succ wy744",fontsize=16,color="green",shape="box"];16123[label="Succ wy743",fontsize=16,color="green",shape="box"];16124[label="Succ wy744",fontsize=16,color="green",shape="box"];16125[label="Succ wy743",fontsize=16,color="green",shape="box"];16742[label="wy7980",fontsize=16,color="green",shape="box"];16743[label="Succ wy799",fontsize=16,color="green",shape="box"];16513[label="primPlusNat wy778 wy77700",fontsize=16,color="burlywood",shape="triangle"];17299[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17299[label="",style="solid", color="burlywood", weight=9]; 17299 -> 16630[label="",style="solid", color="burlywood", weight=3]; 17300[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17300[label="",style="solid", color="burlywood", weight=9]; 17300 -> 16631[label="",style="solid", color="burlywood", weight=3]; 16744[label="primPlusInt (Neg wy833) (Pos wy7520)",fontsize=16,color="black",shape="box"];16744 -> 16768[label="",style="solid", color="black", weight=3]; 16745[label="primPlusInt (Neg wy833) (Neg wy7520)",fontsize=16,color="black",shape="box"];16745 -> 16769[label="",style="solid", color="black", weight=3]; 16258[label="primPlusInt (primMinusNat (Succ wy7780) wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17301[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17301[label="",style="solid", color="burlywood", weight=9]; 17301 -> 16291[label="",style="solid", color="burlywood", weight=3]; 17302[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17302[label="",style="solid", color="burlywood", weight=9]; 17302 -> 16292[label="",style="solid", color="burlywood", weight=3]; 16259[label="primPlusInt (primMinusNat Zero wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17303[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17303[label="",style="solid", color="burlywood", weight=9]; 17303 -> 16293[label="",style="solid", color="burlywood", weight=3]; 17304[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17304[label="",style="solid", color="burlywood", weight=9]; 17304 -> 16294[label="",style="solid", color="burlywood", weight=3]; 16328 -> 16364[label="",style="dashed", color="red", weight=0]; 16328[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16328 -> 16365[label="",style="dashed", color="magenta", weight=3]; 16329[label="Nil",fontsize=16,color="green",shape="box"];16359[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16359 -> 16380[label="",style="solid", color="black", weight=3]; 16468 -> 16457[label="",style="dashed", color="red", weight=0]; 16468[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16469[label="wy753",fontsize=16,color="green",shape="box"];16470[label="primPlusInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="box"];16470 -> 16530[label="",style="solid", color="black", weight=3]; 16522[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16522 -> 16575[label="",style="solid", color="black", weight=3]; 16523[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16523 -> 16576[label="",style="solid", color="black", weight=3]; 16524[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17305[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17305[label="",style="solid", color="burlywood", weight=9]; 17305 -> 16577[label="",style="solid", color="burlywood", weight=3]; 17306[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17306[label="",style="solid", color="burlywood", weight=9]; 17306 -> 16578[label="",style="solid", color="burlywood", weight=3]; 16525[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17307[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17307[label="",style="solid", color="burlywood", weight=9]; 17307 -> 16579[label="",style="solid", color="burlywood", weight=3]; 17308[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17308[label="",style="solid", color="burlywood", weight=9]; 17308 -> 16580[label="",style="solid", color="burlywood", weight=3]; 16526[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16526 -> 16581[label="",style="solid", color="black", weight=3]; 16527[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16527 -> 16582[label="",style="solid", color="black", weight=3]; 16528[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17309[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17309[label="",style="solid", color="burlywood", weight=9]; 17309 -> 16583[label="",style="solid", color="burlywood", weight=3]; 17310[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17310[label="",style="solid", color="burlywood", weight=9]; 17310 -> 16584[label="",style="solid", color="burlywood", weight=3]; 16529[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17311[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17311[label="",style="solid", color="burlywood", weight=9]; 17311 -> 16585[label="",style="solid", color="burlywood", weight=3]; 17312[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17312[label="",style="solid", color="burlywood", weight=9]; 17312 -> 16586[label="",style="solid", color="burlywood", weight=3]; 17068[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) wy853)",fontsize=16,color="burlywood",shape="box"];17313[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17313[label="",style="solid", color="burlywood", weight=9]; 17313 -> 17078[label="",style="solid", color="burlywood", weight=3]; 17314[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17314[label="",style="solid", color="burlywood", weight=9]; 17314 -> 17079[label="",style="solid", color="burlywood", weight=3]; 17069[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero wy853)",fontsize=16,color="burlywood",shape="box"];17315[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17315[label="",style="solid", color="burlywood", weight=9]; 17315 -> 17080[label="",style="solid", color="burlywood", weight=3]; 17316[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17316[label="",style="solid", color="burlywood", weight=9]; 17316 -> 17081[label="",style="solid", color="burlywood", weight=3]; 7338 -> 5128[label="",style="dashed", color="red", weight=0]; 7338[label="primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero)",fontsize=16,color="magenta"];7338 -> 7410[label="",style="dashed", color="magenta", weight=3]; 7338 -> 7411[label="",style="dashed", color="magenta", weight=3]; 7339 -> 5128[label="",style="dashed", color="red", weight=0]; 7339[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];7339 -> 7412[label="",style="dashed", color="magenta", weight=3]; 7339 -> 7413[label="",style="dashed", color="magenta", weight=3]; 16565[label="wy776",fontsize=16,color="green",shape="box"];16566[label="Succ wy778",fontsize=16,color="green",shape="box"];16405[label="primPlusNat (Succ wy778) (Succ wy77600)",fontsize=16,color="black",shape="box"];16405 -> 16509[label="",style="solid", color="black", weight=3]; 16406[label="primPlusNat (Succ wy778) Zero",fontsize=16,color="black",shape="box"];16406 -> 16510[label="",style="solid", color="black", weight=3]; 16640[label="Pos (primPlusNat wy824 wy7340)",fontsize=16,color="green",shape="box"];16640 -> 16647[label="",style="dashed", color="green", weight=3]; 16641[label="primMinusNat wy824 wy7340",fontsize=16,color="burlywood",shape="triangle"];17317[label="wy824/Succ wy8240",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17317[label="",style="solid", color="burlywood", weight=9]; 17317 -> 16648[label="",style="solid", color="burlywood", weight=3]; 17318[label="wy824/Zero",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17318[label="",style="solid", color="burlywood", weight=9]; 17318 -> 16649[label="",style="solid", color="burlywood", weight=3]; 16266 -> 12676[label="",style="dashed", color="red", weight=0]; 16266[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16266 -> 16301[label="",style="dashed", color="magenta", weight=3]; 16266 -> 16302[label="",style="dashed", color="magenta", weight=3]; 16266 -> 16303[label="",style="dashed", color="magenta", weight=3]; 16265[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="triangle"];16265 -> 16304[label="",style="solid", color="black", weight=3]; 16288[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17319[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17319[label="",style="solid", color="burlywood", weight=9]; 17319 -> 16330[label="",style="solid", color="burlywood", weight=3]; 17320[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17320[label="",style="solid", color="burlywood", weight=9]; 17320 -> 16331[label="",style="solid", color="burlywood", weight=3]; 2088[label="properFractionQ1 wy16 wy17 (primQrmInt wy16 wy17)",fontsize=16,color="black",shape="box"];2088 -> 2189[label="",style="solid", color="black", weight=3]; 7350[label="not (esEsOrdering (primCmpNat (Succ wy2000) wy4390) GT)",fontsize=16,color="burlywood",shape="triangle"];17321[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17321[label="",style="solid", color="burlywood", weight=9]; 17321 -> 7421[label="",style="solid", color="burlywood", weight=3]; 17322[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17322[label="",style="solid", color="burlywood", weight=9]; 17322 -> 7422[label="",style="solid", color="burlywood", weight=3]; 7351[label="not (esEsOrdering GT GT)",fontsize=16,color="black",shape="triangle"];7351 -> 7423[label="",style="solid", color="black", weight=3]; 7352[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7352 -> 7424[label="",style="solid", color="black", weight=3]; 7353[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7353 -> 7425[label="",style="solid", color="black", weight=3]; 7354[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7354 -> 7426[label="",style="solid", color="black", weight=3]; 7355[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7355 -> 7427[label="",style="solid", color="black", weight=3]; 7356[label="not (esEsOrdering LT GT)",fontsize=16,color="black",shape="triangle"];7356 -> 7428[label="",style="solid", color="black", weight=3]; 7357[label="not (esEsOrdering (primCmpNat wy4390 (Succ wy2000)) GT)",fontsize=16,color="burlywood",shape="triangle"];17323[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17323[label="",style="solid", color="burlywood", weight=9]; 17323 -> 7429[label="",style="solid", color="burlywood", weight=3]; 17324[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17324[label="",style="solid", color="burlywood", weight=9]; 17324 -> 7430[label="",style="solid", color="burlywood", weight=3]; 7358[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7358 -> 7431[label="",style="solid", color="black", weight=3]; 7359[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7359 -> 7432[label="",style="solid", color="black", weight=3]; 7360[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7360 -> 7433[label="",style="solid", color="black", weight=3]; 7361[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7361 -> 7434[label="",style="solid", color="black", weight=3]; 16360[label="primPlusInt (primMinusInt (Pos Zero) wy733) wy734",fontsize=16,color="burlywood",shape="box"];17325[label="wy733/Pos wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17325[label="",style="solid", color="burlywood", weight=9]; 17325 -> 16381[label="",style="solid", color="burlywood", weight=3]; 17326[label="wy733/Neg wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17326[label="",style="solid", color="burlywood", weight=9]; 17326 -> 16382[label="",style="solid", color="burlywood", weight=3]; 16368 -> 16448[label="",style="dashed", color="red", weight=0]; 16368[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16368 -> 16449[label="",style="dashed", color="magenta", weight=3]; 16368 -> 16450[label="",style="dashed", color="magenta", weight=3]; 16369 -> 16459[label="",style="dashed", color="red", weight=0]; 16369[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16369 -> 16460[label="",style="dashed", color="magenta", weight=3]; 16369 -> 16461[label="",style="dashed", color="magenta", weight=3]; 16370[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16370 -> 16471[label="",style="solid", color="black", weight=3]; 16371[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16371 -> 16472[label="",style="solid", color="black", weight=3]; 16372[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16372 -> 16473[label="",style="solid", color="black", weight=3]; 16373[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16373 -> 16474[label="",style="solid", color="black", weight=3]; 16374 -> 16448[label="",style="dashed", color="red", weight=0]; 16374[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16374 -> 16451[label="",style="dashed", color="magenta", weight=3]; 16374 -> 16452[label="",style="dashed", color="magenta", weight=3]; 16375 -> 16459[label="",style="dashed", color="red", weight=0]; 16375[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16375 -> 16462[label="",style="dashed", color="magenta", weight=3]; 16375 -> 16463[label="",style="dashed", color="magenta", weight=3]; 16376[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16376 -> 16475[label="",style="solid", color="black", weight=3]; 16377[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16377 -> 16476[label="",style="solid", color="black", weight=3]; 16378[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16378 -> 16477[label="",style="solid", color="black", weight=3]; 16379[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16379 -> 16478[label="",style="solid", color="black", weight=3]; 16630[label="primPlusNat (Succ wy7780) wy77700",fontsize=16,color="burlywood",shape="box"];17327[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17327[label="",style="solid", color="burlywood", weight=9]; 17327 -> 16757[label="",style="solid", color="burlywood", weight=3]; 17328[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17328[label="",style="solid", color="burlywood", weight=9]; 17328 -> 16758[label="",style="solid", color="burlywood", weight=3]; 16631[label="primPlusNat Zero wy77700",fontsize=16,color="burlywood",shape="box"];17329[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17329[label="",style="solid", color="burlywood", weight=9]; 17329 -> 16759[label="",style="solid", color="burlywood", weight=3]; 17330[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17330[label="",style="solid", color="burlywood", weight=9]; 17330 -> 16760[label="",style="solid", color="burlywood", weight=3]; 16768 -> 16641[label="",style="dashed", color="red", weight=0]; 16768[label="primMinusNat wy7520 wy833",fontsize=16,color="magenta"];16768 -> 16795[label="",style="dashed", color="magenta", weight=3]; 16768 -> 16796[label="",style="dashed", color="magenta", weight=3]; 16769[label="Neg (primPlusNat wy833 wy7520)",fontsize=16,color="green",shape="box"];16769 -> 16797[label="",style="dashed", color="green", weight=3]; 16291[label="primPlusInt (primMinusNat (Succ wy7780) (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16291 -> 16332[label="",style="solid", color="black", weight=3]; 16292[label="primPlusInt (primMinusNat (Succ wy7780) Zero) wy776",fontsize=16,color="black",shape="box"];16292 -> 16333[label="",style="solid", color="black", weight=3]; 16293[label="primPlusInt (primMinusNat Zero (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16293 -> 16334[label="",style="solid", color="black", weight=3]; 16294[label="primPlusInt (primMinusNat Zero Zero) wy776",fontsize=16,color="black",shape="box"];16294 -> 16335[label="",style="solid", color="black", weight=3]; 16365 -> 14894[label="",style="dashed", color="red", weight=0]; 16365[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16365 -> 16390[label="",style="dashed", color="magenta", weight=3]; 16365 -> 16391[label="",style="dashed", color="magenta", weight=3]; 16365 -> 16392[label="",style="dashed", color="magenta", weight=3]; 16364[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="triangle"];16364 -> 16393[label="",style="solid", color="black", weight=3]; 16380[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17331[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17331[label="",style="solid", color="burlywood", weight=9]; 17331 -> 16479[label="",style="solid", color="burlywood", weight=3]; 17332[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17332[label="",style="solid", color="burlywood", weight=9]; 17332 -> 16480[label="",style="solid", color="burlywood", weight=3]; 16530[label="primPlusInt (primMinusInt (Neg Zero) wy751) wy752",fontsize=16,color="burlywood",shape="box"];17333[label="wy751/Pos wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17333[label="",style="solid", color="burlywood", weight=9]; 17333 -> 16587[label="",style="solid", color="burlywood", weight=3]; 17334[label="wy751/Neg wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17334[label="",style="solid", color="burlywood", weight=9]; 17334 -> 16588[label="",style="solid", color="burlywood", weight=3]; 16575 -> 16642[label="",style="dashed", color="red", weight=0]; 16575[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16575 -> 16643[label="",style="dashed", color="magenta", weight=3]; 16575 -> 16644[label="",style="dashed", color="magenta", weight=3]; 16576 -> 16650[label="",style="dashed", color="red", weight=0]; 16576[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16576 -> 16651[label="",style="dashed", color="magenta", weight=3]; 16576 -> 16652[label="",style="dashed", color="magenta", weight=3]; 16577[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16577 -> 16655[label="",style="solid", color="black", weight=3]; 16578[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16578 -> 16656[label="",style="solid", color="black", weight=3]; 16579[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16579 -> 16657[label="",style="solid", color="black", weight=3]; 16580[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16580 -> 16658[label="",style="solid", color="black", weight=3]; 16581 -> 16642[label="",style="dashed", color="red", weight=0]; 16581[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16581 -> 16645[label="",style="dashed", color="magenta", weight=3]; 16581 -> 16646[label="",style="dashed", color="magenta", weight=3]; 16582 -> 16650[label="",style="dashed", color="red", weight=0]; 16582[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16582 -> 16653[label="",style="dashed", color="magenta", weight=3]; 16582 -> 16654[label="",style="dashed", color="magenta", weight=3]; 16583[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16583 -> 16659[label="",style="solid", color="black", weight=3]; 16584[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16584 -> 16660[label="",style="solid", color="black", weight=3]; 16585[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16585 -> 16661[label="",style="solid", color="black", weight=3]; 16586[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16586 -> 16662[label="",style="solid", color="black", weight=3]; 17078[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) (Succ wy8530))",fontsize=16,color="black",shape="box"];17078 -> 17094[label="",style="solid", color="black", weight=3]; 17079[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) Zero)",fontsize=16,color="black",shape="box"];17079 -> 17095[label="",style="solid", color="black", weight=3]; 17080[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero (Succ wy8530))",fontsize=16,color="black",shape="box"];17080 -> 17096[label="",style="solid", color="black", weight=3]; 17081[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];17081 -> 17097[label="",style="solid", color="black", weight=3]; 7410 -> 6811[label="",style="dashed", color="red", weight=0]; 7410[label="primMinusNatS (Succ wy16000) Zero",fontsize=16,color="magenta"];7410 -> 7712[label="",style="dashed", color="magenta", weight=3]; 7411[label="Zero",fontsize=16,color="green",shape="box"];7412 -> 6851[label="",style="dashed", color="red", weight=0]; 7412[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];7413[label="Zero",fontsize=16,color="green",shape="box"];16509[label="Succ (Succ (primPlusNat wy778 wy77600))",fontsize=16,color="green",shape="box"];16509 -> 16632[label="",style="dashed", color="green", weight=3]; 16510[label="Succ wy778",fontsize=16,color="green",shape="box"];16647 -> 16513[label="",style="dashed", color="red", weight=0]; 16647[label="primPlusNat wy824 wy7340",fontsize=16,color="magenta"];16647 -> 16663[label="",style="dashed", color="magenta", weight=3]; 16647 -> 16664[label="",style="dashed", color="magenta", weight=3]; 16648[label="primMinusNat (Succ wy8240) wy7340",fontsize=16,color="burlywood",shape="box"];17335[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17335[label="",style="solid", color="burlywood", weight=9]; 17335 -> 16665[label="",style="solid", color="burlywood", weight=3]; 17336[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17336[label="",style="solid", color="burlywood", weight=9]; 17336 -> 16666[label="",style="solid", color="burlywood", weight=3]; 16649[label="primMinusNat Zero wy7340",fontsize=16,color="burlywood",shape="box"];17337[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17337[label="",style="solid", color="burlywood", weight=9]; 17337 -> 16667[label="",style="solid", color="burlywood", weight=3]; 17338[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17338[label="",style="solid", color="burlywood", weight=9]; 17338 -> 16668[label="",style="solid", color="burlywood", weight=3]; 16301[label="wy758",fontsize=16,color="green",shape="box"];16302[label="wy732",fontsize=16,color="green",shape="box"];16303[label="wy762",fontsize=16,color="green",shape="box"];16304[label="takeWhile2 (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="box"];16304 -> 16342[label="",style="solid", color="black", weight=3]; 16330[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17339[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17339[label="",style="solid", color="burlywood", weight=9]; 17339 -> 16394[label="",style="solid", color="burlywood", weight=3]; 17340[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17340[label="",style="solid", color="burlywood", weight=9]; 17340 -> 16395[label="",style="solid", color="burlywood", weight=3]; 16331[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17341[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17341[label="",style="solid", color="burlywood", weight=9]; 17341 -> 16396[label="",style="solid", color="burlywood", weight=3]; 17342[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17342[label="",style="solid", color="burlywood", weight=9]; 17342 -> 16397[label="",style="solid", color="burlywood", weight=3]; 2189[label="properFractionQ1 wy16 wy17 (Tup2 (primQuotInt wy16 wy17) (primRemInt wy16 wy17))",fontsize=16,color="black",shape="box"];2189 -> 2519[label="",style="solid", color="black", weight=3]; 7421[label="not (esEsOrdering (primCmpNat (Succ wy2000) (Succ wy43900)) GT)",fontsize=16,color="black",shape="box"];7421 -> 10560[label="",style="solid", color="black", weight=3]; 7422[label="not (esEsOrdering (primCmpNat (Succ wy2000) Zero) GT)",fontsize=16,color="black",shape="box"];7422 -> 10561[label="",style="solid", color="black", weight=3]; 7424 -> 7357[label="",style="dashed", color="red", weight=0]; 7424[label="not (esEsOrdering (primCmpNat Zero (Succ wy43900)) GT)",fontsize=16,color="magenta"];7424 -> 10563[label="",style="dashed", color="magenta", weight=3]; 7424 -> 10564[label="",style="dashed", color="magenta", weight=3]; 7425[label="not (esEsOrdering EQ GT)",fontsize=16,color="black",shape="triangle"];7425 -> 10565[label="",style="solid", color="black", weight=3]; 7426 -> 7351[label="",style="dashed", color="red", weight=0]; 7426[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];7427 -> 7425[label="",style="dashed", color="red", weight=0]; 7427[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7429[label="not (esEsOrdering (primCmpNat (Succ wy43900) (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7429 -> 10567[label="",style="solid", color="black", weight=3]; 7430[label="not (esEsOrdering (primCmpNat Zero (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7430 -> 10568[label="",style="solid", color="black", weight=3]; 7431 -> 7356[label="",style="dashed", color="red", weight=0]; 7431[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];7432 -> 7425[label="",style="dashed", color="red", weight=0]; 7432[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7433 -> 7350[label="",style="dashed", color="red", weight=0]; 7433[label="not (esEsOrdering (primCmpNat (Succ wy43900) Zero) GT)",fontsize=16,color="magenta"];7433 -> 10569[label="",style="dashed", color="magenta", weight=3]; 7433 -> 10570[label="",style="dashed", color="magenta", weight=3]; 7434 -> 7425[label="",style="dashed", color="red", weight=0]; 7434[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16381[label="primPlusInt (primMinusInt (Pos Zero) (Pos wy7330)) wy734",fontsize=16,color="black",shape="box"];16381 -> 16481[label="",style="solid", color="black", weight=3]; 16382[label="primPlusInt (primMinusInt (Pos Zero) (Neg wy7330)) wy734",fontsize=16,color="black",shape="box"];16382 -> 16482[label="",style="solid", color="black", weight=3]; 16449 -> 14963[label="",style="dashed", color="red", weight=0]; 16449[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16449 -> 16483[label="",style="dashed", color="magenta", weight=3]; 16449 -> 16484[label="",style="dashed", color="magenta", weight=3]; 16450 -> 16277[label="",style="dashed", color="red", weight=0]; 16450[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16448[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) wy820",fontsize=16,color="burlywood",shape="triangle"];17343[label="wy820/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17343[label="",style="solid", color="burlywood", weight=9]; 17343 -> 16485[label="",style="solid", color="burlywood", weight=3]; 17344[label="wy820/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17344[label="",style="solid", color="burlywood", weight=9]; 17344 -> 16486[label="",style="solid", color="burlywood", weight=3]; 16460 -> 13404[label="",style="dashed", color="red", weight=0]; 16460[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16461 -> 16277[label="",style="dashed", color="red", weight=0]; 16461[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16459[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) wy822",fontsize=16,color="burlywood",shape="triangle"];17345[label="wy822/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17345[label="",style="solid", color="burlywood", weight=9]; 17345 -> 16487[label="",style="solid", color="burlywood", weight=3]; 17346[label="wy822/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17346[label="",style="solid", color="burlywood", weight=9]; 17346 -> 16488[label="",style="solid", color="burlywood", weight=3]; 16471 -> 16448[label="",style="dashed", color="red", weight=0]; 16471[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16471 -> 16531[label="",style="dashed", color="magenta", weight=3]; 16471 -> 16532[label="",style="dashed", color="magenta", weight=3]; 16471 -> 16533[label="",style="dashed", color="magenta", weight=3]; 16472 -> 16448[label="",style="dashed", color="red", weight=0]; 16472[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16472 -> 16534[label="",style="dashed", color="magenta", weight=3]; 16472 -> 16535[label="",style="dashed", color="magenta", weight=3]; 16472 -> 16536[label="",style="dashed", color="magenta", weight=3]; 16473 -> 16459[label="",style="dashed", color="red", weight=0]; 16473[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16473 -> 16537[label="",style="dashed", color="magenta", weight=3]; 16473 -> 16538[label="",style="dashed", color="magenta", weight=3]; 16473 -> 16539[label="",style="dashed", color="magenta", weight=3]; 16474 -> 16459[label="",style="dashed", color="red", weight=0]; 16474[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16474 -> 16540[label="",style="dashed", color="magenta", weight=3]; 16474 -> 16541[label="",style="dashed", color="magenta", weight=3]; 16474 -> 16542[label="",style="dashed", color="magenta", weight=3]; 16451 -> 14929[label="",style="dashed", color="red", weight=0]; 16451[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16452 -> 16277[label="",style="dashed", color="red", weight=0]; 16452[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16462 -> 14963[label="",style="dashed", color="red", weight=0]; 16462[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16462 -> 16489[label="",style="dashed", color="magenta", weight=3]; 16462 -> 16490[label="",style="dashed", color="magenta", weight=3]; 16463 -> 16277[label="",style="dashed", color="red", weight=0]; 16463[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16475 -> 16448[label="",style="dashed", color="red", weight=0]; 16475[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16475 -> 16543[label="",style="dashed", color="magenta", weight=3]; 16475 -> 16544[label="",style="dashed", color="magenta", weight=3]; 16475 -> 16545[label="",style="dashed", color="magenta", weight=3]; 16476 -> 16448[label="",style="dashed", color="red", weight=0]; 16476[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16476 -> 16546[label="",style="dashed", color="magenta", weight=3]; 16476 -> 16547[label="",style="dashed", color="magenta", weight=3]; 16476 -> 16548[label="",style="dashed", color="magenta", weight=3]; 16477 -> 16459[label="",style="dashed", color="red", weight=0]; 16477[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16477 -> 16549[label="",style="dashed", color="magenta", weight=3]; 16477 -> 16550[label="",style="dashed", color="magenta", weight=3]; 16477 -> 16551[label="",style="dashed", color="magenta", weight=3]; 16478 -> 16459[label="",style="dashed", color="red", weight=0]; 16478[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16478 -> 16552[label="",style="dashed", color="magenta", weight=3]; 16478 -> 16553[label="",style="dashed", color="magenta", weight=3]; 16478 -> 16554[label="",style="dashed", color="magenta", weight=3]; 16757[label="primPlusNat (Succ wy7780) (Succ wy777000)",fontsize=16,color="black",shape="box"];16757 -> 16770[label="",style="solid", color="black", weight=3]; 16758[label="primPlusNat (Succ wy7780) Zero",fontsize=16,color="black",shape="box"];16758 -> 16771[label="",style="solid", color="black", weight=3]; 16759[label="primPlusNat Zero (Succ wy777000)",fontsize=16,color="black",shape="box"];16759 -> 16772[label="",style="solid", color="black", weight=3]; 16760[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16760 -> 16773[label="",style="solid", color="black", weight=3]; 16795[label="wy833",fontsize=16,color="green",shape="box"];16796[label="wy7520",fontsize=16,color="green",shape="box"];16797 -> 16513[label="",style="dashed", color="red", weight=0]; 16797[label="primPlusNat wy833 wy7520",fontsize=16,color="magenta"];16797 -> 16802[label="",style="dashed", color="magenta", weight=3]; 16797 -> 16803[label="",style="dashed", color="magenta", weight=3]; 16332 -> 16215[label="",style="dashed", color="red", weight=0]; 16332[label="primPlusInt (primMinusNat wy7780 wy777000) wy776",fontsize=16,color="magenta"];16332 -> 16398[label="",style="dashed", color="magenta", weight=3]; 16332 -> 16399[label="",style="dashed", color="magenta", weight=3]; 16333 -> 16562[label="",style="dashed", color="red", weight=0]; 16333[label="primPlusInt (Pos (Succ wy7780)) wy776",fontsize=16,color="magenta"];16333 -> 16567[label="",style="dashed", color="magenta", weight=3]; 16333 -> 16568[label="",style="dashed", color="magenta", weight=3]; 16334 -> 16736[label="",style="dashed", color="red", weight=0]; 16334[label="primPlusInt (Neg (Succ wy777000)) wy776",fontsize=16,color="magenta"];16334 -> 16739[label="",style="dashed", color="magenta", weight=3]; 16334 -> 16740[label="",style="dashed", color="magenta", weight=3]; 16335 -> 16562[label="",style="dashed", color="red", weight=0]; 16335[label="primPlusInt (Pos Zero) wy776",fontsize=16,color="magenta"];16335 -> 16569[label="",style="dashed", color="magenta", weight=3]; 16335 -> 16570[label="",style="dashed", color="magenta", weight=3]; 16390[label="wy784",fontsize=16,color="green",shape="box"];16391[label="wy780",fontsize=16,color="green",shape="box"];16392[label="wy750",fontsize=16,color="green",shape="box"];16393[label="takeWhile2 (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="box"];16393 -> 16495[label="",style="solid", color="black", weight=3]; 16479[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17347[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17347[label="",style="solid", color="burlywood", weight=9]; 17347 -> 16555[label="",style="solid", color="burlywood", weight=3]; 17348[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17348[label="",style="solid", color="burlywood", weight=9]; 17348 -> 16556[label="",style="solid", color="burlywood", weight=3]; 16480[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17349[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17349[label="",style="solid", color="burlywood", weight=9]; 17349 -> 16557[label="",style="solid", color="burlywood", weight=3]; 17350[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17350[label="",style="solid", color="burlywood", weight=9]; 17350 -> 16558[label="",style="solid", color="burlywood", weight=3]; 16587[label="primPlusInt (primMinusInt (Neg Zero) (Pos wy7510)) wy752",fontsize=16,color="black",shape="box"];16587 -> 16669[label="",style="solid", color="black", weight=3]; 16588[label="primPlusInt (primMinusInt (Neg Zero) (Neg wy7510)) wy752",fontsize=16,color="black",shape="box"];16588 -> 16670[label="",style="solid", color="black", weight=3]; 16643 -> 14963[label="",style="dashed", color="red", weight=0]; 16643[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16643 -> 16671[label="",style="dashed", color="magenta", weight=3]; 16643 -> 16672[label="",style="dashed", color="magenta", weight=3]; 16644 -> 16457[label="",style="dashed", color="red", weight=0]; 16644[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16642[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) wy828",fontsize=16,color="burlywood",shape="triangle"];17351[label="wy828/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17351[label="",style="solid", color="burlywood", weight=9]; 17351 -> 16673[label="",style="solid", color="burlywood", weight=3]; 17352[label="wy828/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17352[label="",style="solid", color="burlywood", weight=9]; 17352 -> 16674[label="",style="solid", color="burlywood", weight=3]; 16651 -> 13404[label="",style="dashed", color="red", weight=0]; 16651[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16652 -> 16457[label="",style="dashed", color="red", weight=0]; 16652[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16650[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) wy830",fontsize=16,color="burlywood",shape="triangle"];17353[label="wy830/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17353[label="",style="solid", color="burlywood", weight=9]; 17353 -> 16675[label="",style="solid", color="burlywood", weight=3]; 17354[label="wy830/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17354[label="",style="solid", color="burlywood", weight=9]; 17354 -> 16676[label="",style="solid", color="burlywood", weight=3]; 16655 -> 16642[label="",style="dashed", color="red", weight=0]; 16655[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16655 -> 16708[label="",style="dashed", color="magenta", weight=3]; 16655 -> 16709[label="",style="dashed", color="magenta", weight=3]; 16655 -> 16710[label="",style="dashed", color="magenta", weight=3]; 16656 -> 16642[label="",style="dashed", color="red", weight=0]; 16656[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16656 -> 16711[label="",style="dashed", color="magenta", weight=3]; 16656 -> 16712[label="",style="dashed", color="magenta", weight=3]; 16656 -> 16713[label="",style="dashed", color="magenta", weight=3]; 16657 -> 16650[label="",style="dashed", color="red", weight=0]; 16657[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16657 -> 16714[label="",style="dashed", color="magenta", weight=3]; 16657 -> 16715[label="",style="dashed", color="magenta", weight=3]; 16657 -> 16716[label="",style="dashed", color="magenta", weight=3]; 16658 -> 16650[label="",style="dashed", color="red", weight=0]; 16658[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16658 -> 16717[label="",style="dashed", color="magenta", weight=3]; 16658 -> 16718[label="",style="dashed", color="magenta", weight=3]; 16658 -> 16719[label="",style="dashed", color="magenta", weight=3]; 16645 -> 14929[label="",style="dashed", color="red", weight=0]; 16645[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16646 -> 16457[label="",style="dashed", color="red", weight=0]; 16646[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16653 -> 14963[label="",style="dashed", color="red", weight=0]; 16653[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16653 -> 16677[label="",style="dashed", color="magenta", weight=3]; 16653 -> 16678[label="",style="dashed", color="magenta", weight=3]; 16654 -> 16457[label="",style="dashed", color="red", weight=0]; 16654[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16659 -> 16642[label="",style="dashed", color="red", weight=0]; 16659[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16659 -> 16720[label="",style="dashed", color="magenta", weight=3]; 16659 -> 16721[label="",style="dashed", color="magenta", weight=3]; 16659 -> 16722[label="",style="dashed", color="magenta", weight=3]; 16660 -> 16642[label="",style="dashed", color="red", weight=0]; 16660[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16660 -> 16723[label="",style="dashed", color="magenta", weight=3]; 16660 -> 16724[label="",style="dashed", color="magenta", weight=3]; 16660 -> 16725[label="",style="dashed", color="magenta", weight=3]; 16661 -> 16650[label="",style="dashed", color="red", weight=0]; 16661[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16661 -> 16726[label="",style="dashed", color="magenta", weight=3]; 16661 -> 16727[label="",style="dashed", color="magenta", weight=3]; 16661 -> 16728[label="",style="dashed", color="magenta", weight=3]; 16662 -> 16650[label="",style="dashed", color="red", weight=0]; 16662[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16662 -> 16729[label="",style="dashed", color="magenta", weight=3]; 16662 -> 16730[label="",style="dashed", color="magenta", weight=3]; 16662 -> 16731[label="",style="dashed", color="magenta", weight=3]; 17094 -> 17027[label="",style="dashed", color="red", weight=0]; 17094[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy8520 wy8530)",fontsize=16,color="magenta"];17094 -> 17110[label="",style="dashed", color="magenta", weight=3]; 17094 -> 17111[label="",style="dashed", color="magenta", weight=3]; 17095[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="black",shape="triangle"];17095 -> 17112[label="",style="solid", color="black", weight=3]; 17096[label="primDivNatS0 (Succ wy850) (Succ wy851) MyFalse",fontsize=16,color="black",shape="box"];17096 -> 17113[label="",style="solid", color="black", weight=3]; 17097 -> 17095[label="",style="dashed", color="red", weight=0]; 17097[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="magenta"];7712[label="wy16000",fontsize=16,color="green",shape="box"];6811[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="black",shape="triangle"];6811 -> 7063[label="",style="solid", color="black", weight=3]; 6851[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];6851 -> 7092[label="",style="solid", color="black", weight=3]; 16632 -> 16513[label="",style="dashed", color="red", weight=0]; 16632[label="primPlusNat wy778 wy77600",fontsize=16,color="magenta"];16632 -> 16679[label="",style="dashed", color="magenta", weight=3]; 16663[label="wy7340",fontsize=16,color="green",shape="box"];16664[label="wy824",fontsize=16,color="green",shape="box"];16665[label="primMinusNat (Succ wy8240) (Succ wy73400)",fontsize=16,color="black",shape="box"];16665 -> 16732[label="",style="solid", color="black", weight=3]; 16666[label="primMinusNat (Succ wy8240) Zero",fontsize=16,color="black",shape="box"];16666 -> 16733[label="",style="solid", color="black", weight=3]; 16667[label="primMinusNat Zero (Succ wy73400)",fontsize=16,color="black",shape="box"];16667 -> 16734[label="",style="solid", color="black", weight=3]; 16668[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];16668 -> 16735[label="",style="solid", color="black", weight=3]; 16342 -> 13641[label="",style="dashed", color="red", weight=0]; 16342[label="takeWhile1 (flip ltEsMyInt wy735) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813) (flip ltEsMyInt wy735 wy758)",fontsize=16,color="magenta"];16342 -> 16411[label="",style="dashed", color="magenta", weight=3]; 16342 -> 16412[label="",style="dashed", color="magenta", weight=3]; 16342 -> 16413[label="",style="dashed", color="magenta", weight=3]; 16394[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17355[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17355[label="",style="solid", color="burlywood", weight=9]; 17355 -> 16497[label="",style="solid", color="burlywood", weight=3]; 17356[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17356[label="",style="solid", color="burlywood", weight=9]; 17356 -> 16498[label="",style="solid", color="burlywood", weight=3]; 16395[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17357[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17357[label="",style="solid", color="burlywood", weight=9]; 17357 -> 16499[label="",style="solid", color="burlywood", weight=3]; 17358[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17358[label="",style="solid", color="burlywood", weight=9]; 17358 -> 16500[label="",style="solid", color="burlywood", weight=3]; 16396[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17359[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17359[label="",style="solid", color="burlywood", weight=9]; 17359 -> 16501[label="",style="solid", color="burlywood", weight=3]; 17360[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17360[label="",style="solid", color="burlywood", weight=9]; 17360 -> 16502[label="",style="solid", color="burlywood", weight=3]; 16397[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17361[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17361[label="",style="solid", color="burlywood", weight=9]; 17361 -> 16503[label="",style="solid", color="burlywood", weight=3]; 17362[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17362[label="",style="solid", color="burlywood", weight=9]; 17362 -> 16504[label="",style="solid", color="burlywood", weight=3]; 2519[label="primQuotInt wy16 wy17",fontsize=16,color="burlywood",shape="box"];17363[label="wy16/Pos wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17363[label="",style="solid", color="burlywood", weight=9]; 17363 -> 3636[label="",style="solid", color="burlywood", weight=3]; 17364[label="wy16/Neg wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17364[label="",style="solid", color="burlywood", weight=9]; 17364 -> 3637[label="",style="solid", color="burlywood", weight=3]; 10560[label="not (esEsOrdering (primCmpNat wy2000 wy43900) GT)",fontsize=16,color="burlywood",shape="triangle"];17365[label="wy2000/Succ wy20000",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17365[label="",style="solid", color="burlywood", weight=9]; 17365 -> 13627[label="",style="solid", color="burlywood", weight=3]; 17366[label="wy2000/Zero",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17366[label="",style="solid", color="burlywood", weight=9]; 17366 -> 13628[label="",style="solid", color="burlywood", weight=3]; 10561 -> 7351[label="",style="dashed", color="red", weight=0]; 10561[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];10563[label="wy43900",fontsize=16,color="green",shape="box"];10564[label="Zero",fontsize=16,color="green",shape="box"];10565 -> 7428[label="",style="dashed", color="red", weight=0]; 10565[label="not MyFalse",fontsize=16,color="magenta"];10567 -> 10560[label="",style="dashed", color="red", weight=0]; 10567[label="not (esEsOrdering (primCmpNat wy43900 wy2000) GT)",fontsize=16,color="magenta"];10567 -> 13629[label="",style="dashed", color="magenta", weight=3]; 10567 -> 13630[label="",style="dashed", color="magenta", weight=3]; 10568 -> 7356[label="",style="dashed", color="red", weight=0]; 10568[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];10569[label="Zero",fontsize=16,color="green",shape="box"];10570[label="wy43900",fontsize=16,color="green",shape="box"];16481 -> 16215[label="",style="dashed", color="red", weight=0]; 16481[label="primPlusInt (primMinusNat Zero wy7330) wy734",fontsize=16,color="magenta"];16481 -> 16559[label="",style="dashed", color="magenta", weight=3]; 16481 -> 16560[label="",style="dashed", color="magenta", weight=3]; 16481 -> 16561[label="",style="dashed", color="magenta", weight=3]; 16482 -> 16562[label="",style="dashed", color="red", weight=0]; 16482[label="primPlusInt (Pos (primPlusNat Zero wy7330)) wy734",fontsize=16,color="magenta"];16482 -> 16571[label="",style="dashed", color="magenta", weight=3]; 16483[label="wy7350",fontsize=16,color="green",shape="box"];16484[label="Succ wy73800",fontsize=16,color="green",shape="box"];16485[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16485 -> 16589[label="",style="solid", color="black", weight=3]; 16486[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyFalse",fontsize=16,color="black",shape="box"];16486 -> 16590[label="",style="solid", color="black", weight=3]; 16487[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16487 -> 16591[label="",style="solid", color="black", weight=3]; 16488[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyFalse",fontsize=16,color="black",shape="box"];16488 -> 16592[label="",style="solid", color="black", weight=3]; 16531[label="Succ wy73500",fontsize=16,color="green",shape="box"];16532 -> 14963[label="",style="dashed", color="red", weight=0]; 16532[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16532 -> 16593[label="",style="dashed", color="magenta", weight=3]; 16532 -> 16594[label="",style="dashed", color="magenta", weight=3]; 16533 -> 16277[label="",style="dashed", color="red", weight=0]; 16533[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16534[label="Zero",fontsize=16,color="green",shape="box"];16535 -> 14908[label="",style="dashed", color="red", weight=0]; 16535[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16536 -> 16277[label="",style="dashed", color="red", weight=0]; 16536[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16537[label="Succ wy73500",fontsize=16,color="green",shape="box"];16538 -> 13404[label="",style="dashed", color="red", weight=0]; 16538[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16539 -> 16277[label="",style="dashed", color="red", weight=0]; 16539[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16540[label="Zero",fontsize=16,color="green",shape="box"];16541 -> 14908[label="",style="dashed", color="red", weight=0]; 16541[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16542 -> 16277[label="",style="dashed", color="red", weight=0]; 16542[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16489[label="Succ wy73800",fontsize=16,color="green",shape="box"];16490[label="wy7350",fontsize=16,color="green",shape="box"];16543[label="Succ wy73500",fontsize=16,color="green",shape="box"];16544 -> 14929[label="",style="dashed", color="red", weight=0]; 16544[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16545 -> 16277[label="",style="dashed", color="red", weight=0]; 16545[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16546[label="Zero",fontsize=16,color="green",shape="box"];16547 -> 14908[label="",style="dashed", color="red", weight=0]; 16547[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16548 -> 16277[label="",style="dashed", color="red", weight=0]; 16548[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16549[label="Succ wy73500",fontsize=16,color="green",shape="box"];16550 -> 14963[label="",style="dashed", color="red", weight=0]; 16550[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16550 -> 16595[label="",style="dashed", color="magenta", weight=3]; 16550 -> 16596[label="",style="dashed", color="magenta", weight=3]; 16551 -> 16277[label="",style="dashed", color="red", weight=0]; 16551[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16552[label="Zero",fontsize=16,color="green",shape="box"];16553 -> 14908[label="",style="dashed", color="red", weight=0]; 16553[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16554 -> 16277[label="",style="dashed", color="red", weight=0]; 16554[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16770[label="Succ (Succ (primPlusNat wy7780 wy777000))",fontsize=16,color="green",shape="box"];16770 -> 16798[label="",style="dashed", color="green", weight=3]; 16771[label="Succ wy7780",fontsize=16,color="green",shape="box"];16772[label="Succ wy777000",fontsize=16,color="green",shape="box"];16773[label="Zero",fontsize=16,color="green",shape="box"];16802[label="wy7520",fontsize=16,color="green",shape="box"];16803[label="wy833",fontsize=16,color="green",shape="box"];16398[label="wy777000",fontsize=16,color="green",shape="box"];16399[label="wy7780",fontsize=16,color="green",shape="box"];16567[label="wy776",fontsize=16,color="green",shape="box"];16568[label="Succ wy7780",fontsize=16,color="green",shape="box"];16739[label="Succ wy777000",fontsize=16,color="green",shape="box"];16740[label="wy776",fontsize=16,color="green",shape="box"];16569[label="wy776",fontsize=16,color="green",shape="box"];16570[label="Zero",fontsize=16,color="green",shape="box"];16495 -> 16188[label="",style="dashed", color="red", weight=0]; 16495[label="takeWhile1 (flip ltEsMyInt wy753) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816) (flip ltEsMyInt wy753 wy780)",fontsize=16,color="magenta"];16495 -> 16601[label="",style="dashed", color="magenta", weight=3]; 16495 -> 16602[label="",style="dashed", color="magenta", weight=3]; 16495 -> 16603[label="",style="dashed", color="magenta", weight=3]; 16555[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17367[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17367[label="",style="solid", color="burlywood", weight=9]; 17367 -> 16604[label="",style="solid", color="burlywood", weight=3]; 17368[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17368[label="",style="solid", color="burlywood", weight=9]; 17368 -> 16605[label="",style="solid", color="burlywood", weight=3]; 16556[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17369[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17369[label="",style="solid", color="burlywood", weight=9]; 17369 -> 16606[label="",style="solid", color="burlywood", weight=3]; 17370[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17370[label="",style="solid", color="burlywood", weight=9]; 17370 -> 16607[label="",style="solid", color="burlywood", weight=3]; 16557[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17371[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17371[label="",style="solid", color="burlywood", weight=9]; 17371 -> 16608[label="",style="solid", color="burlywood", weight=3]; 17372[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17372[label="",style="solid", color="burlywood", weight=9]; 17372 -> 16609[label="",style="solid", color="burlywood", weight=3]; 16558[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17373[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17373[label="",style="solid", color="burlywood", weight=9]; 17373 -> 16610[label="",style="solid", color="burlywood", weight=3]; 17374[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17374[label="",style="solid", color="burlywood", weight=9]; 17374 -> 16611[label="",style="solid", color="burlywood", weight=3]; 16669 -> 16736[label="",style="dashed", color="red", weight=0]; 16669[label="primPlusInt (Neg (primPlusNat Zero wy7510)) wy752",fontsize=16,color="magenta"];16669 -> 16741[label="",style="dashed", color="magenta", weight=3]; 16670 -> 16215[label="",style="dashed", color="red", weight=0]; 16670[label="primPlusInt (primMinusNat wy7510 Zero) wy752",fontsize=16,color="magenta"];16670 -> 16746[label="",style="dashed", color="magenta", weight=3]; 16670 -> 16747[label="",style="dashed", color="magenta", weight=3]; 16670 -> 16748[label="",style="dashed", color="magenta", weight=3]; 16671[label="wy7530",fontsize=16,color="green",shape="box"];16672[label="Succ wy75600",fontsize=16,color="green",shape="box"];16673[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16673 -> 16749[label="",style="solid", color="black", weight=3]; 16674[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyFalse",fontsize=16,color="black",shape="box"];16674 -> 16750[label="",style="solid", color="black", weight=3]; 16675[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16675 -> 16751[label="",style="solid", color="black", weight=3]; 16676[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyFalse",fontsize=16,color="black",shape="box"];16676 -> 16752[label="",style="solid", color="black", weight=3]; 16708 -> 14963[label="",style="dashed", color="red", weight=0]; 16708[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16708 -> 16753[label="",style="dashed", color="magenta", weight=3]; 16708 -> 16754[label="",style="dashed", color="magenta", weight=3]; 16709[label="Succ wy75300",fontsize=16,color="green",shape="box"];16710 -> 16457[label="",style="dashed", color="red", weight=0]; 16710[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16711 -> 14908[label="",style="dashed", color="red", weight=0]; 16711[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16712[label="Zero",fontsize=16,color="green",shape="box"];16713 -> 16457[label="",style="dashed", color="red", weight=0]; 16713[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16714 -> 13404[label="",style="dashed", color="red", weight=0]; 16714[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16715 -> 16457[label="",style="dashed", color="red", weight=0]; 16715[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16716[label="Succ wy75300",fontsize=16,color="green",shape="box"];16717 -> 14908[label="",style="dashed", color="red", weight=0]; 16717[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16718 -> 16457[label="",style="dashed", color="red", weight=0]; 16718[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16719[label="Zero",fontsize=16,color="green",shape="box"];16677[label="Succ wy75600",fontsize=16,color="green",shape="box"];16678[label="wy7530",fontsize=16,color="green",shape="box"];16720 -> 14929[label="",style="dashed", color="red", weight=0]; 16720[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16721[label="Succ wy75300",fontsize=16,color="green",shape="box"];16722 -> 16457[label="",style="dashed", color="red", weight=0]; 16722[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16723 -> 14908[label="",style="dashed", color="red", weight=0]; 16723[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16724[label="Zero",fontsize=16,color="green",shape="box"];16725 -> 16457[label="",style="dashed", color="red", weight=0]; 16725[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16726 -> 14963[label="",style="dashed", color="red", weight=0]; 16726[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16726 -> 16755[label="",style="dashed", color="magenta", weight=3]; 16726 -> 16756[label="",style="dashed", color="magenta", weight=3]; 16727 -> 16457[label="",style="dashed", color="red", weight=0]; 16727[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16728[label="Succ wy75300",fontsize=16,color="green",shape="box"];16729 -> 14908[label="",style="dashed", color="red", weight=0]; 16729[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16730 -> 16457[label="",style="dashed", color="red", weight=0]; 16730[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16731[label="Zero",fontsize=16,color="green",shape="box"];17110[label="wy8520",fontsize=16,color="green",shape="box"];17111[label="wy8530",fontsize=16,color="green",shape="box"];17112[label="Succ (primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851)))",fontsize=16,color="green",shape="box"];17112 -> 17118[label="",style="dashed", color="green", weight=3]; 17113[label="Zero",fontsize=16,color="green",shape="box"];7063[label="Succ wy40000",fontsize=16,color="green",shape="box"];7092[label="Zero",fontsize=16,color="green",shape="box"];16679[label="wy77600",fontsize=16,color="green",shape="box"];16732 -> 16641[label="",style="dashed", color="red", weight=0]; 16732[label="primMinusNat wy8240 wy73400",fontsize=16,color="magenta"];16732 -> 16761[label="",style="dashed", color="magenta", weight=3]; 16732 -> 16762[label="",style="dashed", color="magenta", weight=3]; 16733[label="Pos (Succ wy8240)",fontsize=16,color="green",shape="box"];16734[label="Neg (Succ wy73400)",fontsize=16,color="green",shape="box"];16735[label="Pos Zero",fontsize=16,color="green",shape="box"];16411[label="wy813",fontsize=16,color="green",shape="box"];16412[label="wy758",fontsize=16,color="green",shape="box"];16413 -> 5275[label="",style="dashed", color="red", weight=0]; 16413[label="flip ltEsMyInt wy735 wy758",fontsize=16,color="magenta"];16413 -> 16516[label="",style="dashed", color="magenta", weight=3]; 16413 -> 16517[label="",style="dashed", color="magenta", weight=3]; 16497[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16497 -> 16613[label="",style="solid", color="black", weight=3]; 16498[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16498 -> 16614[label="",style="solid", color="black", weight=3]; 16499[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17375[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17375[label="",style="solid", color="burlywood", weight=9]; 17375 -> 16615[label="",style="solid", color="burlywood", weight=3]; 17376[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17376[label="",style="solid", color="burlywood", weight=9]; 17376 -> 16616[label="",style="solid", color="burlywood", weight=3]; 16500[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17377[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17377[label="",style="solid", color="burlywood", weight=9]; 17377 -> 16617[label="",style="solid", color="burlywood", weight=3]; 17378[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17378[label="",style="solid", color="burlywood", weight=9]; 17378 -> 16618[label="",style="solid", color="burlywood", weight=3]; 16501[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16501 -> 16619[label="",style="solid", color="black", weight=3]; 16502[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16502 -> 16620[label="",style="solid", color="black", weight=3]; 16503[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17379[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17379[label="",style="solid", color="burlywood", weight=9]; 17379 -> 16621[label="",style="solid", color="burlywood", weight=3]; 17380[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17380[label="",style="solid", color="burlywood", weight=9]; 17380 -> 16622[label="",style="solid", color="burlywood", weight=3]; 16504[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17381[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17381[label="",style="solid", color="burlywood", weight=9]; 17381 -> 16623[label="",style="solid", color="burlywood", weight=3]; 17382[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17382[label="",style="solid", color="burlywood", weight=9]; 17382 -> 16624[label="",style="solid", color="burlywood", weight=3]; 3636[label="primQuotInt (Pos wy160) wy17",fontsize=16,color="burlywood",shape="box"];17383[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17383[label="",style="solid", color="burlywood", weight=9]; 17383 -> 4336[label="",style="solid", color="burlywood", weight=3]; 17384[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17384[label="",style="solid", color="burlywood", weight=9]; 17384 -> 4337[label="",style="solid", color="burlywood", weight=3]; 3637[label="primQuotInt (Neg wy160) wy17",fontsize=16,color="burlywood",shape="box"];17385[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17385[label="",style="solid", color="burlywood", weight=9]; 17385 -> 4338[label="",style="solid", color="burlywood", weight=3]; 17386[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17386[label="",style="solid", color="burlywood", weight=9]; 17386 -> 4339[label="",style="solid", color="burlywood", weight=3]; 13627[label="not (esEsOrdering (primCmpNat (Succ wy20000) wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17387[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17387[label="",style="solid", color="burlywood", weight=9]; 17387 -> 14988[label="",style="solid", color="burlywood", weight=3]; 17388[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17388[label="",style="solid", color="burlywood", weight=9]; 17388 -> 14989[label="",style="solid", color="burlywood", weight=3]; 13628[label="not (esEsOrdering (primCmpNat Zero wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17389[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17389[label="",style="solid", color="burlywood", weight=9]; 17389 -> 14990[label="",style="solid", color="burlywood", weight=3]; 17390[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17390[label="",style="solid", color="burlywood", weight=9]; 17390 -> 14991[label="",style="solid", color="burlywood", weight=3]; 13629[label="wy43900",fontsize=16,color="green",shape="box"];13630[label="wy2000",fontsize=16,color="green",shape="box"];16559[label="wy734",fontsize=16,color="green",shape="box"];16560[label="wy7330",fontsize=16,color="green",shape="box"];16561[label="Zero",fontsize=16,color="green",shape="box"];16571[label="primPlusNat Zero wy7330",fontsize=16,color="burlywood",shape="box"];17391[label="wy7330/Succ wy73300",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17391[label="",style="solid", color="burlywood", weight=9]; 17391 -> 16625[label="",style="solid", color="burlywood", weight=3]; 17392[label="wy7330/Zero",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17392[label="",style="solid", color="burlywood", weight=9]; 17392 -> 16626[label="",style="solid", color="burlywood", weight=3]; 16589[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821))",fontsize=16,color="green",shape="box"];16589 -> 16680[label="",style="dashed", color="green", weight=3]; 16590[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) otherwise",fontsize=16,color="black",shape="box"];16590 -> 16681[label="",style="solid", color="black", weight=3]; 16591[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823))",fontsize=16,color="green",shape="box"];16591 -> 16682[label="",style="dashed", color="green", weight=3]; 16592[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) otherwise",fontsize=16,color="black",shape="box"];16592 -> 16683[label="",style="solid", color="black", weight=3]; 16593[label="Succ wy73500",fontsize=16,color="green",shape="box"];16594[label="Zero",fontsize=16,color="green",shape="box"];16595[label="Zero",fontsize=16,color="green",shape="box"];16596[label="Succ wy73500",fontsize=16,color="green",shape="box"];16798 -> 16513[label="",style="dashed", color="red", weight=0]; 16798[label="primPlusNat wy7780 wy777000",fontsize=16,color="magenta"];16798 -> 16804[label="",style="dashed", color="magenta", weight=3]; 16798 -> 16805[label="",style="dashed", color="magenta", weight=3]; 16601[label="wy816",fontsize=16,color="green",shape="box"];16602 -> 5275[label="",style="dashed", color="red", weight=0]; 16602[label="flip ltEsMyInt wy753 wy780",fontsize=16,color="magenta"];16602 -> 16689[label="",style="dashed", color="magenta", weight=3]; 16602 -> 16690[label="",style="dashed", color="magenta", weight=3]; 16603[label="wy780",fontsize=16,color="green",shape="box"];16604[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16604 -> 16691[label="",style="solid", color="black", weight=3]; 16605[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16605 -> 16692[label="",style="solid", color="black", weight=3]; 16606[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17393[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17393[label="",style="solid", color="burlywood", weight=9]; 17393 -> 16693[label="",style="solid", color="burlywood", weight=3]; 17394[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17394[label="",style="solid", color="burlywood", weight=9]; 17394 -> 16694[label="",style="solid", color="burlywood", weight=3]; 16607[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17395[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17395[label="",style="solid", color="burlywood", weight=9]; 17395 -> 16695[label="",style="solid", color="burlywood", weight=3]; 17396[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17396[label="",style="solid", color="burlywood", weight=9]; 17396 -> 16696[label="",style="solid", color="burlywood", weight=3]; 16608[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16608 -> 16697[label="",style="solid", color="black", weight=3]; 16609[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16609 -> 16698[label="",style="solid", color="black", weight=3]; 16610[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17397[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17397[label="",style="solid", color="burlywood", weight=9]; 17397 -> 16699[label="",style="solid", color="burlywood", weight=3]; 17398[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17398[label="",style="solid", color="burlywood", weight=9]; 17398 -> 16700[label="",style="solid", color="burlywood", weight=3]; 16611[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17399[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17399[label="",style="solid", color="burlywood", weight=9]; 17399 -> 16701[label="",style="solid", color="burlywood", weight=3]; 17400[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17400[label="",style="solid", color="burlywood", weight=9]; 17400 -> 16702[label="",style="solid", color="burlywood", weight=3]; 16741 -> 16513[label="",style="dashed", color="red", weight=0]; 16741[label="primPlusNat Zero wy7510",fontsize=16,color="magenta"];16741 -> 16763[label="",style="dashed", color="magenta", weight=3]; 16741 -> 16764[label="",style="dashed", color="magenta", weight=3]; 16746[label="wy752",fontsize=16,color="green",shape="box"];16747[label="Zero",fontsize=16,color="green",shape="box"];16748[label="wy7510",fontsize=16,color="green",shape="box"];16749[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829))",fontsize=16,color="green",shape="box"];16749 -> 16774[label="",style="dashed", color="green", weight=3]; 16750[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) otherwise",fontsize=16,color="black",shape="box"];16750 -> 16775[label="",style="solid", color="black", weight=3]; 16751[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831))",fontsize=16,color="green",shape="box"];16751 -> 16776[label="",style="dashed", color="green", weight=3]; 16752[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) otherwise",fontsize=16,color="black",shape="box"];16752 -> 16777[label="",style="solid", color="black", weight=3]; 16753[label="Succ wy75300",fontsize=16,color="green",shape="box"];16754[label="Zero",fontsize=16,color="green",shape="box"];16755[label="Zero",fontsize=16,color="green",shape="box"];16756[label="Succ wy75300",fontsize=16,color="green",shape="box"];17118 -> 5128[label="",style="dashed", color="red", weight=0]; 17118[label="primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851))",fontsize=16,color="magenta"];17118 -> 17119[label="",style="dashed", color="magenta", weight=3]; 17118 -> 17120[label="",style="dashed", color="magenta", weight=3]; 16761[label="wy73400",fontsize=16,color="green",shape="box"];16762[label="wy8240",fontsize=16,color="green",shape="box"];16516[label="wy758",fontsize=16,color="green",shape="box"];16517[label="wy735",fontsize=16,color="green",shape="box"];16613 -> 16705[label="",style="dashed", color="red", weight=0]; 16613[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16613 -> 16706[label="",style="dashed", color="magenta", weight=3]; 16614 -> 16765[label="",style="dashed", color="red", weight=0]; 16614[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16614 -> 16766[label="",style="dashed", color="magenta", weight=3]; 16615[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16615 -> 16778[label="",style="solid", color="black", weight=3]; 16616[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16616 -> 16779[label="",style="solid", color="black", weight=3]; 16617[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16617 -> 16780[label="",style="solid", color="black", weight=3]; 16618[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16618 -> 16781[label="",style="solid", color="black", weight=3]; 16619 -> 16705[label="",style="dashed", color="red", weight=0]; 16619[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16619 -> 16707[label="",style="dashed", color="magenta", weight=3]; 16620 -> 16765[label="",style="dashed", color="red", weight=0]; 16620[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16620 -> 16767[label="",style="dashed", color="magenta", weight=3]; 16621[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16621 -> 16782[label="",style="solid", color="black", weight=3]; 16622[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16622 -> 16783[label="",style="solid", color="black", weight=3]; 16623[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16623 -> 16784[label="",style="solid", color="black", weight=3]; 16624[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16624 -> 16785[label="",style="solid", color="black", weight=3]; 4336[label="primQuotInt (Pos wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17401[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17401[label="",style="solid", color="burlywood", weight=9]; 17401 -> 4806[label="",style="solid", color="burlywood", weight=3]; 17402[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17402[label="",style="solid", color="burlywood", weight=9]; 17402 -> 4807[label="",style="solid", color="burlywood", weight=3]; 4337[label="primQuotInt (Pos wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17403[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17403[label="",style="solid", color="burlywood", weight=9]; 17403 -> 4808[label="",style="solid", color="burlywood", weight=3]; 17404[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17404[label="",style="solid", color="burlywood", weight=9]; 17404 -> 4809[label="",style="solid", color="burlywood", weight=3]; 4338[label="primQuotInt (Neg wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17405[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17405[label="",style="solid", color="burlywood", weight=9]; 17405 -> 4810[label="",style="solid", color="burlywood", weight=3]; 17406[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17406[label="",style="solid", color="burlywood", weight=9]; 17406 -> 4811[label="",style="solid", color="burlywood", weight=3]; 4339[label="primQuotInt (Neg wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17407[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17407[label="",style="solid", color="burlywood", weight=9]; 17407 -> 4812[label="",style="solid", color="burlywood", weight=3]; 17408[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17408[label="",style="solid", color="burlywood", weight=9]; 17408 -> 4813[label="",style="solid", color="burlywood", weight=3]; 14988[label="not (esEsOrdering (primCmpNat (Succ wy20000) (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14988 -> 16222[label="",style="solid", color="black", weight=3]; 14989[label="not (esEsOrdering (primCmpNat (Succ wy20000) Zero) GT)",fontsize=16,color="black",shape="box"];14989 -> 16223[label="",style="solid", color="black", weight=3]; 14990[label="not (esEsOrdering (primCmpNat Zero (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14990 -> 16224[label="",style="solid", color="black", weight=3]; 14991[label="not (esEsOrdering (primCmpNat Zero Zero) GT)",fontsize=16,color="black",shape="box"];14991 -> 16225[label="",style="solid", color="black", weight=3]; 16625[label="primPlusNat Zero (Succ wy73300)",fontsize=16,color="black",shape="box"];16625 -> 16786[label="",style="solid", color="black", weight=3]; 16626[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16626 -> 16787[label="",style="solid", color="black", weight=3]; 16680[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821)",fontsize=16,color="black",shape="box"];16680 -> 16788[label="",style="solid", color="black", weight=3]; 16681[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16681 -> 16789[label="",style="solid", color="black", weight=3]; 16682[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823)",fontsize=16,color="black",shape="box"];16682 -> 16790[label="",style="solid", color="black", weight=3]; 16683[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16683 -> 16791[label="",style="solid", color="black", weight=3]; 16804[label="wy777000",fontsize=16,color="green",shape="box"];16805[label="wy7780",fontsize=16,color="green",shape="box"];16689[label="wy780",fontsize=16,color="green",shape="box"];16690[label="wy753",fontsize=16,color="green",shape="box"];16691 -> 16792[label="",style="dashed", color="red", weight=0]; 16691[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16691 -> 16793[label="",style="dashed", color="magenta", weight=3]; 16692 -> 16799[label="",style="dashed", color="red", weight=0]; 16692[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16692 -> 16800[label="",style="dashed", color="magenta", weight=3]; 16693[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16693 -> 16806[label="",style="solid", color="black", weight=3]; 16694[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16694 -> 16807[label="",style="solid", color="black", weight=3]; 16695[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16695 -> 16808[label="",style="solid", color="black", weight=3]; 16696[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16696 -> 16809[label="",style="solid", color="black", weight=3]; 16697 -> 16792[label="",style="dashed", color="red", weight=0]; 16697[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16697 -> 16794[label="",style="dashed", color="magenta", weight=3]; 16698 -> 16799[label="",style="dashed", color="red", weight=0]; 16698[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16698 -> 16801[label="",style="dashed", color="magenta", weight=3]; 16699[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16699 -> 16810[label="",style="solid", color="black", weight=3]; 16700[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16700 -> 16811[label="",style="solid", color="black", weight=3]; 16701[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16701 -> 16812[label="",style="solid", color="black", weight=3]; 16702[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16702 -> 16813[label="",style="solid", color="black", weight=3]; 16763[label="wy7510",fontsize=16,color="green",shape="box"];16764[label="Zero",fontsize=16,color="green",shape="box"];16774[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829)",fontsize=16,color="black",shape="box"];16774 -> 16814[label="",style="solid", color="black", weight=3]; 16775[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16775 -> 16815[label="",style="solid", color="black", weight=3]; 16776[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831)",fontsize=16,color="black",shape="box"];16776 -> 16816[label="",style="solid", color="black", weight=3]; 16777[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16777 -> 16817[label="",style="solid", color="black", weight=3]; 17119 -> 13663[label="",style="dashed", color="red", weight=0]; 17119[label="primMinusNatS (Succ wy850) (Succ wy851)",fontsize=16,color="magenta"];17119 -> 17121[label="",style="dashed", color="magenta", weight=3]; 17119 -> 17122[label="",style="dashed", color="magenta", weight=3]; 17120[label="Succ wy851",fontsize=16,color="green",shape="box"];16706 -> 14963[label="",style="dashed", color="red", weight=0]; 16706[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16706 -> 16820[label="",style="dashed", color="magenta", weight=3]; 16706 -> 16821[label="",style="dashed", color="magenta", weight=3]; 16705[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy832",fontsize=16,color="burlywood",shape="triangle"];17409[label="wy832/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17409[label="",style="solid", color="burlywood", weight=9]; 17409 -> 16822[label="",style="solid", color="burlywood", weight=3]; 17410[label="wy832/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17410[label="",style="solid", color="burlywood", weight=9]; 17410 -> 16823[label="",style="solid", color="burlywood", weight=3]; 16766 -> 13404[label="",style="dashed", color="red", weight=0]; 16766[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16765[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy834",fontsize=16,color="burlywood",shape="triangle"];17411[label="wy834/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17411[label="",style="solid", color="burlywood", weight=9]; 17411 -> 16824[label="",style="solid", color="burlywood", weight=3]; 17412[label="wy834/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17412[label="",style="solid", color="burlywood", weight=9]; 17412 -> 16825[label="",style="solid", color="burlywood", weight=3]; 16778 -> 16705[label="",style="dashed", color="red", weight=0]; 16778[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16778 -> 16826[label="",style="dashed", color="magenta", weight=3]; 16778 -> 16827[label="",style="dashed", color="magenta", weight=3]; 16779 -> 16705[label="",style="dashed", color="red", weight=0]; 16779[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16779 -> 16828[label="",style="dashed", color="magenta", weight=3]; 16779 -> 16829[label="",style="dashed", color="magenta", weight=3]; 16780 -> 16765[label="",style="dashed", color="red", weight=0]; 16780[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16780 -> 16830[label="",style="dashed", color="magenta", weight=3]; 16780 -> 16831[label="",style="dashed", color="magenta", weight=3]; 16781 -> 16765[label="",style="dashed", color="red", weight=0]; 16781[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16781 -> 16832[label="",style="dashed", color="magenta", weight=3]; 16781 -> 16833[label="",style="dashed", color="magenta", weight=3]; 16707 -> 14929[label="",style="dashed", color="red", weight=0]; 16707[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16767 -> 14963[label="",style="dashed", color="red", weight=0]; 16767[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16767 -> 16834[label="",style="dashed", color="magenta", weight=3]; 16767 -> 16835[label="",style="dashed", color="magenta", weight=3]; 16782 -> 16705[label="",style="dashed", color="red", weight=0]; 16782[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16782 -> 16836[label="",style="dashed", color="magenta", weight=3]; 16782 -> 16837[label="",style="dashed", color="magenta", weight=3]; 16783 -> 16705[label="",style="dashed", color="red", weight=0]; 16783[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16783 -> 16838[label="",style="dashed", color="magenta", weight=3]; 16783 -> 16839[label="",style="dashed", color="magenta", weight=3]; 16784 -> 16765[label="",style="dashed", color="red", weight=0]; 16784[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16784 -> 16840[label="",style="dashed", color="magenta", weight=3]; 16784 -> 16841[label="",style="dashed", color="magenta", weight=3]; 16785 -> 16765[label="",style="dashed", color="red", weight=0]; 16785[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16785 -> 16842[label="",style="dashed", color="magenta", weight=3]; 16785 -> 16843[label="",style="dashed", color="magenta", weight=3]; 4806[label="primQuotInt (Pos wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4806 -> 5031[label="",style="solid", color="black", weight=3]; 4807[label="primQuotInt (Pos wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4807 -> 5032[label="",style="solid", color="black", weight=3]; 4808[label="primQuotInt (Pos wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4808 -> 5033[label="",style="solid", color="black", weight=3]; 4809[label="primQuotInt (Pos wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4809 -> 5034[label="",style="solid", color="black", weight=3]; 4810[label="primQuotInt (Neg wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4810 -> 5035[label="",style="solid", color="black", weight=3]; 4811[label="primQuotInt (Neg wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4811 -> 5036[label="",style="solid", color="black", weight=3]; 4812[label="primQuotInt (Neg wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4812 -> 5037[label="",style="solid", color="black", weight=3]; 4813[label="primQuotInt (Neg wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4813 -> 5038[label="",style="solid", color="black", weight=3]; 16222 -> 10560[label="",style="dashed", color="red", weight=0]; 16222[label="not (esEsOrdering (primCmpNat wy20000 wy439000) GT)",fontsize=16,color="magenta"];16222 -> 16305[label="",style="dashed", color="magenta", weight=3]; 16222 -> 16306[label="",style="dashed", color="magenta", weight=3]; 16223 -> 7351[label="",style="dashed", color="red", weight=0]; 16223[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];16224 -> 7356[label="",style="dashed", color="red", weight=0]; 16224[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];16225 -> 7425[label="",style="dashed", color="red", weight=0]; 16225[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16786[label="Succ wy73300",fontsize=16,color="green",shape="box"];16787[label="Zero",fontsize=16,color="green",shape="box"];16788 -> 16844[label="",style="dashed", color="red", weight=0]; 16788[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy821)))",fontsize=16,color="magenta"];16788 -> 16845[label="",style="dashed", color="magenta", weight=3]; 16789[label="Nil",fontsize=16,color="green",shape="box"];16790 -> 16846[label="",style="dashed", color="red", weight=0]; 16790[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy823)))",fontsize=16,color="magenta"];16790 -> 16847[label="",style="dashed", color="magenta", weight=3]; 16791[label="Nil",fontsize=16,color="green",shape="box"];16793 -> 14963[label="",style="dashed", color="red", weight=0]; 16793[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16793 -> 16848[label="",style="dashed", color="magenta", weight=3]; 16793 -> 16849[label="",style="dashed", color="magenta", weight=3]; 16792[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy835",fontsize=16,color="burlywood",shape="triangle"];17413[label="wy835/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17413[label="",style="solid", color="burlywood", weight=9]; 17413 -> 16850[label="",style="solid", color="burlywood", weight=3]; 17414[label="wy835/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17414[label="",style="solid", color="burlywood", weight=9]; 17414 -> 16851[label="",style="solid", color="burlywood", weight=3]; 16800 -> 13404[label="",style="dashed", color="red", weight=0]; 16800[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16799[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy836",fontsize=16,color="burlywood",shape="triangle"];17415[label="wy836/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17415[label="",style="solid", color="burlywood", weight=9]; 17415 -> 16852[label="",style="solid", color="burlywood", weight=3]; 17416[label="wy836/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17416[label="",style="solid", color="burlywood", weight=9]; 17416 -> 16853[label="",style="solid", color="burlywood", weight=3]; 16806 -> 16792[label="",style="dashed", color="red", weight=0]; 16806[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16806 -> 16854[label="",style="dashed", color="magenta", weight=3]; 16806 -> 16855[label="",style="dashed", color="magenta", weight=3]; 16807 -> 16792[label="",style="dashed", color="red", weight=0]; 16807[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16807 -> 16856[label="",style="dashed", color="magenta", weight=3]; 16807 -> 16857[label="",style="dashed", color="magenta", weight=3]; 16808 -> 16799[label="",style="dashed", color="red", weight=0]; 16808[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16808 -> 16858[label="",style="dashed", color="magenta", weight=3]; 16808 -> 16859[label="",style="dashed", color="magenta", weight=3]; 16809 -> 16799[label="",style="dashed", color="red", weight=0]; 16809[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16809 -> 16860[label="",style="dashed", color="magenta", weight=3]; 16809 -> 16861[label="",style="dashed", color="magenta", weight=3]; 16794 -> 14929[label="",style="dashed", color="red", weight=0]; 16794[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16801 -> 14963[label="",style="dashed", color="red", weight=0]; 16801[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16801 -> 16862[label="",style="dashed", color="magenta", weight=3]; 16801 -> 16863[label="",style="dashed", color="magenta", weight=3]; 16810 -> 16792[label="",style="dashed", color="red", weight=0]; 16810[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16810 -> 16864[label="",style="dashed", color="magenta", weight=3]; 16810 -> 16865[label="",style="dashed", color="magenta", weight=3]; 16811 -> 16792[label="",style="dashed", color="red", weight=0]; 16811[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16811 -> 16866[label="",style="dashed", color="magenta", weight=3]; 16811 -> 16867[label="",style="dashed", color="magenta", weight=3]; 16812 -> 16799[label="",style="dashed", color="red", weight=0]; 16812[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16812 -> 16868[label="",style="dashed", color="magenta", weight=3]; 16812 -> 16869[label="",style="dashed", color="magenta", weight=3]; 16813 -> 16799[label="",style="dashed", color="red", weight=0]; 16813[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16813 -> 16870[label="",style="dashed", color="magenta", weight=3]; 16813 -> 16871[label="",style="dashed", color="magenta", weight=3]; 16814 -> 16872[label="",style="dashed", color="red", weight=0]; 16814[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy829)))",fontsize=16,color="magenta"];16814 -> 16873[label="",style="dashed", color="magenta", weight=3]; 16815[label="Nil",fontsize=16,color="green",shape="box"];16816 -> 16874[label="",style="dashed", color="red", weight=0]; 16816[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy831)))",fontsize=16,color="magenta"];16816 -> 16875[label="",style="dashed", color="magenta", weight=3]; 16817[label="Nil",fontsize=16,color="green",shape="box"];17121[label="Succ wy851",fontsize=16,color="green",shape="box"];17122[label="Succ wy850",fontsize=16,color="green",shape="box"];16820[label="wy7350",fontsize=16,color="green",shape="box"];16821[label="Succ wy73800",fontsize=16,color="green",shape="box"];16822[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16822 -> 16876[label="",style="solid", color="black", weight=3]; 16823[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16823 -> 16877[label="",style="solid", color="black", weight=3]; 16824[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16824 -> 16878[label="",style="solid", color="black", weight=3]; 16825[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16825 -> 16879[label="",style="solid", color="black", weight=3]; 16826[label="Succ wy73500",fontsize=16,color="green",shape="box"];16827 -> 14963[label="",style="dashed", color="red", weight=0]; 16827[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16827 -> 16880[label="",style="dashed", color="magenta", weight=3]; 16827 -> 16881[label="",style="dashed", color="magenta", weight=3]; 16828[label="Zero",fontsize=16,color="green",shape="box"];16829 -> 14908[label="",style="dashed", color="red", weight=0]; 16829[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16830[label="Succ wy73500",fontsize=16,color="green",shape="box"];16831 -> 13404[label="",style="dashed", color="red", weight=0]; 16831[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16832[label="Zero",fontsize=16,color="green",shape="box"];16833 -> 14908[label="",style="dashed", color="red", weight=0]; 16833[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16834[label="Succ wy73800",fontsize=16,color="green",shape="box"];16835[label="wy7350",fontsize=16,color="green",shape="box"];16836[label="Succ wy73500",fontsize=16,color="green",shape="box"];16837 -> 14929[label="",style="dashed", color="red", weight=0]; 16837[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16838[label="Zero",fontsize=16,color="green",shape="box"];16839 -> 14908[label="",style="dashed", color="red", weight=0]; 16839[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16840[label="Succ wy73500",fontsize=16,color="green",shape="box"];16841 -> 14963[label="",style="dashed", color="red", weight=0]; 16841[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16841 -> 16882[label="",style="dashed", color="magenta", weight=3]; 16841 -> 16883[label="",style="dashed", color="magenta", weight=3]; 16842[label="Zero",fontsize=16,color="green",shape="box"];16843 -> 14908[label="",style="dashed", color="red", weight=0]; 16843[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];5031[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5031 -> 5128[label="",style="dashed", color="green", weight=3]; 5032[label="error",fontsize=16,color="black",shape="triangle"];5032 -> 5129[label="",style="solid", color="black", weight=3]; 5033[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5033 -> 5130[label="",style="dashed", color="green", weight=3]; 5034 -> 5032[label="",style="dashed", color="red", weight=0]; 5034[label="error",fontsize=16,color="magenta"];5035[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5035 -> 5131[label="",style="dashed", color="green", weight=3]; 5036 -> 5032[label="",style="dashed", color="red", weight=0]; 5036[label="error",fontsize=16,color="magenta"];5037[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5037 -> 5132[label="",style="dashed", color="green", weight=3]; 5038 -> 5032[label="",style="dashed", color="red", weight=0]; 5038[label="error",fontsize=16,color="magenta"];16305[label="wy20000",fontsize=16,color="green",shape="box"];16306[label="wy439000",fontsize=16,color="green",shape="box"];16845 -> 16277[label="",style="dashed", color="red", weight=0]; 16845[label="psMyInt (msMyInt (Pos Zero) wy732) wy821",fontsize=16,color="magenta"];16845 -> 16884[label="",style="dashed", color="magenta", weight=3]; 16845 -> 16885[label="",style="dashed", color="magenta", weight=3]; 16844[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="triangle"];16844 -> 16886[label="",style="solid", color="black", weight=3]; 16847 -> 16277[label="",style="dashed", color="red", weight=0]; 16847[label="psMyInt (msMyInt (Pos Zero) wy732) wy823",fontsize=16,color="magenta"];16847 -> 16887[label="",style="dashed", color="magenta", weight=3]; 16847 -> 16888[label="",style="dashed", color="magenta", weight=3]; 16846[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="triangle"];16846 -> 16889[label="",style="solid", color="black", weight=3]; 16848[label="wy7530",fontsize=16,color="green",shape="box"];16849[label="Succ wy75600",fontsize=16,color="green",shape="box"];16850[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16850 -> 16890[label="",style="solid", color="black", weight=3]; 16851[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16851 -> 16891[label="",style="solid", color="black", weight=3]; 16852[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16852 -> 16892[label="",style="solid", color="black", weight=3]; 16853[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16853 -> 16893[label="",style="solid", color="black", weight=3]; 16854[label="Succ wy75300",fontsize=16,color="green",shape="box"];16855 -> 14963[label="",style="dashed", color="red", weight=0]; 16855[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16855 -> 16894[label="",style="dashed", color="magenta", weight=3]; 16855 -> 16895[label="",style="dashed", color="magenta", weight=3]; 16856[label="Zero",fontsize=16,color="green",shape="box"];16857 -> 14908[label="",style="dashed", color="red", weight=0]; 16857[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16858 -> 13404[label="",style="dashed", color="red", weight=0]; 16858[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16859[label="Succ wy75300",fontsize=16,color="green",shape="box"];16860 -> 14908[label="",style="dashed", color="red", weight=0]; 16860[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16861[label="Zero",fontsize=16,color="green",shape="box"];16862[label="Succ wy75600",fontsize=16,color="green",shape="box"];16863[label="wy7530",fontsize=16,color="green",shape="box"];16864[label="Succ wy75300",fontsize=16,color="green",shape="box"];16865 -> 14929[label="",style="dashed", color="red", weight=0]; 16865[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16866[label="Zero",fontsize=16,color="green",shape="box"];16867 -> 14908[label="",style="dashed", color="red", weight=0]; 16867[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16868 -> 14963[label="",style="dashed", color="red", weight=0]; 16868[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16868 -> 16896[label="",style="dashed", color="magenta", weight=3]; 16868 -> 16897[label="",style="dashed", color="magenta", weight=3]; 16869[label="Succ wy75300",fontsize=16,color="green",shape="box"];16870 -> 14908[label="",style="dashed", color="red", weight=0]; 16870[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16871[label="Zero",fontsize=16,color="green",shape="box"];16873 -> 16457[label="",style="dashed", color="red", weight=0]; 16873[label="psMyInt (msMyInt (Neg Zero) wy750) wy829",fontsize=16,color="magenta"];16873 -> 16898[label="",style="dashed", color="magenta", weight=3]; 16873 -> 16899[label="",style="dashed", color="magenta", weight=3]; 16872[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="triangle"];16872 -> 16900[label="",style="solid", color="black", weight=3]; 16875 -> 16457[label="",style="dashed", color="red", weight=0]; 16875[label="psMyInt (msMyInt (Neg Zero) wy750) wy831",fontsize=16,color="magenta"];16875 -> 16901[label="",style="dashed", color="magenta", weight=3]; 16875 -> 16902[label="",style="dashed", color="magenta", weight=3]; 16874[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="triangle"];16874 -> 16903[label="",style="solid", color="black", weight=3]; 16876[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16876 -> 16911[label="",style="dashed", color="green", weight=3]; 16877[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16877 -> 16912[label="",style="solid", color="black", weight=3]; 16878[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16878 -> 16913[label="",style="dashed", color="green", weight=3]; 16879[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16879 -> 16914[label="",style="solid", color="black", weight=3]; 16880[label="Succ wy73500",fontsize=16,color="green",shape="box"];16881[label="Zero",fontsize=16,color="green",shape="box"];16882[label="Zero",fontsize=16,color="green",shape="box"];16883[label="Succ wy73500",fontsize=16,color="green",shape="box"];5129[label="stop MyTrue",fontsize=16,color="black",shape="box"];5129 -> 6027[label="",style="solid", color="black", weight=3]; 5130 -> 5128[label="",style="dashed", color="red", weight=0]; 5130[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5130 -> 6028[label="",style="dashed", color="magenta", weight=3]; 5131 -> 5128[label="",style="dashed", color="red", weight=0]; 5131[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5131 -> 6029[label="",style="dashed", color="magenta", weight=3]; 5132 -> 5128[label="",style="dashed", color="red", weight=0]; 5132[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5132 -> 6030[label="",style="dashed", color="magenta", weight=3]; 5132 -> 6031[label="",style="dashed", color="magenta", weight=3]; 16884[label="wy732",fontsize=16,color="green",shape="box"];16885[label="wy821",fontsize=16,color="green",shape="box"];16886[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="box"];16886 -> 16915[label="",style="solid", color="black", weight=3]; 16887[label="wy732",fontsize=16,color="green",shape="box"];16888[label="wy823",fontsize=16,color="green",shape="box"];16889[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="box"];16889 -> 16916[label="",style="solid", color="black", weight=3]; 16890[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16890 -> 16917[label="",style="dashed", color="green", weight=3]; 16891[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16891 -> 16918[label="",style="solid", color="black", weight=3]; 16892[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16892 -> 16919[label="",style="dashed", color="green", weight=3]; 16893[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16893 -> 16920[label="",style="solid", color="black", weight=3]; 16894[label="Succ wy75300",fontsize=16,color="green",shape="box"];16895[label="Zero",fontsize=16,color="green",shape="box"];16896[label="Zero",fontsize=16,color="green",shape="box"];16897[label="Succ wy75300",fontsize=16,color="green",shape="box"];16898[label="wy750",fontsize=16,color="green",shape="box"];16899[label="wy829",fontsize=16,color="green",shape="box"];16900[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="box"];16900 -> 16921[label="",style="solid", color="black", weight=3]; 16901[label="wy750",fontsize=16,color="green",shape="box"];16902[label="wy831",fontsize=16,color="green",shape="box"];16903[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="box"];16903 -> 16922[label="",style="solid", color="black", weight=3]; 16911[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16911 -> 16927[label="",style="solid", color="black", weight=3]; 16912[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16912 -> 16928[label="",style="solid", color="black", weight=3]; 16913[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16913 -> 16929[label="",style="solid", color="black", weight=3]; 16914[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16914 -> 16930[label="",style="solid", color="black", weight=3]; 6027[label="error []",fontsize=16,color="red",shape="box"];6028[label="wy1700",fontsize=16,color="green",shape="box"];6029[label="wy160",fontsize=16,color="green",shape="box"];6030[label="wy160",fontsize=16,color="green",shape="box"];6031[label="wy1700",fontsize=16,color="green",shape="box"];16915 -> 16448[label="",style="dashed", color="red", weight=0]; 16915[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837) (flip gtEsMyInt (Pos wy7350) wy821)",fontsize=16,color="magenta"];16915 -> 16931[label="",style="dashed", color="magenta", weight=3]; 16915 -> 16932[label="",style="dashed", color="magenta", weight=3]; 16915 -> 16933[label="",style="dashed", color="magenta", weight=3]; 16916 -> 16459[label="",style="dashed", color="red", weight=0]; 16916[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838) (flip gtEsMyInt (Neg wy7350) wy823)",fontsize=16,color="magenta"];16916 -> 16934[label="",style="dashed", color="magenta", weight=3]; 16916 -> 16935[label="",style="dashed", color="magenta", weight=3]; 16916 -> 16936[label="",style="dashed", color="magenta", weight=3]; 16917[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16917 -> 16937[label="",style="solid", color="black", weight=3]; 16918[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16918 -> 16938[label="",style="solid", color="black", weight=3]; 16919[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16919 -> 16939[label="",style="solid", color="black", weight=3]; 16920[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16920 -> 16940[label="",style="solid", color="black", weight=3]; 16921 -> 16642[label="",style="dashed", color="red", weight=0]; 16921[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839) (flip gtEsMyInt (Pos wy7530) wy829)",fontsize=16,color="magenta"];16921 -> 16941[label="",style="dashed", color="magenta", weight=3]; 16921 -> 16942[label="",style="dashed", color="magenta", weight=3]; 16921 -> 16943[label="",style="dashed", color="magenta", weight=3]; 16922 -> 16650[label="",style="dashed", color="red", weight=0]; 16922[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840) (flip gtEsMyInt (Neg wy7530) wy831)",fontsize=16,color="magenta"];16922 -> 16944[label="",style="dashed", color="magenta", weight=3]; 16922 -> 16945[label="",style="dashed", color="magenta", weight=3]; 16922 -> 16946[label="",style="dashed", color="magenta", weight=3]; 16927 -> 16951[label="",style="dashed", color="red", weight=0]; 16927[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16927 -> 16952[label="",style="dashed", color="magenta", weight=3]; 16928[label="Nil",fontsize=16,color="green",shape="box"];16929 -> 16953[label="",style="dashed", color="red", weight=0]; 16929[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16929 -> 16954[label="",style="dashed", color="magenta", weight=3]; 16930[label="Nil",fontsize=16,color="green",shape="box"];16931[label="wy821",fontsize=16,color="green",shape="box"];16932[label="flip gtEsMyInt (Pos wy7350) wy821",fontsize=16,color="black",shape="triangle"];16932 -> 16955[label="",style="solid", color="black", weight=3]; 16933[label="wy837",fontsize=16,color="green",shape="box"];16934[label="wy823",fontsize=16,color="green",shape="box"];16935[label="flip gtEsMyInt (Neg wy7350) wy823",fontsize=16,color="black",shape="triangle"];16935 -> 16956[label="",style="solid", color="black", weight=3]; 16936[label="wy838",fontsize=16,color="green",shape="box"];16937 -> 16957[label="",style="dashed", color="red", weight=0]; 16937[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16937 -> 16958[label="",style="dashed", color="magenta", weight=3]; 16938[label="Nil",fontsize=16,color="green",shape="box"];16939 -> 16959[label="",style="dashed", color="red", weight=0]; 16939[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16939 -> 16960[label="",style="dashed", color="magenta", weight=3]; 16940[label="Nil",fontsize=16,color="green",shape="box"];16941 -> 16932[label="",style="dashed", color="red", weight=0]; 16941[label="flip gtEsMyInt (Pos wy7530) wy829",fontsize=16,color="magenta"];16941 -> 16961[label="",style="dashed", color="magenta", weight=3]; 16941 -> 16962[label="",style="dashed", color="magenta", weight=3]; 16942[label="wy829",fontsize=16,color="green",shape="box"];16943[label="wy839",fontsize=16,color="green",shape="box"];16944 -> 16935[label="",style="dashed", color="red", weight=0]; 16944[label="flip gtEsMyInt (Neg wy7530) wy831",fontsize=16,color="magenta"];16944 -> 16963[label="",style="dashed", color="magenta", weight=3]; 16944 -> 16964[label="",style="dashed", color="magenta", weight=3]; 16945[label="wy840",fontsize=16,color="green",shape="box"];16946[label="wy831",fontsize=16,color="green",shape="box"];16952 -> 12676[label="",style="dashed", color="red", weight=0]; 16952[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16952 -> 16965[label="",style="dashed", color="magenta", weight=3]; 16952 -> 16966[label="",style="dashed", color="magenta", weight=3]; 16952 -> 16967[label="",style="dashed", color="magenta", weight=3]; 16951[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="triangle"];16951 -> 16968[label="",style="solid", color="black", weight=3]; 16954 -> 12676[label="",style="dashed", color="red", weight=0]; 16954[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16954 -> 16969[label="",style="dashed", color="magenta", weight=3]; 16954 -> 16970[label="",style="dashed", color="magenta", weight=3]; 16954 -> 16971[label="",style="dashed", color="magenta", weight=3]; 16953[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="triangle"];16953 -> 16972[label="",style="solid", color="black", weight=3]; 16955[label="gtEsMyInt wy821 (Pos wy7350)",fontsize=16,color="black",shape="box"];16955 -> 16973[label="",style="solid", color="black", weight=3]; 16956[label="gtEsMyInt wy823 (Neg wy7350)",fontsize=16,color="black",shape="box"];16956 -> 16974[label="",style="solid", color="black", weight=3]; 16958 -> 14894[label="",style="dashed", color="red", weight=0]; 16958[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16958 -> 16975[label="",style="dashed", color="magenta", weight=3]; 16958 -> 16976[label="",style="dashed", color="magenta", weight=3]; 16958 -> 16977[label="",style="dashed", color="magenta", weight=3]; 16957[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="triangle"];16957 -> 16978[label="",style="solid", color="black", weight=3]; 16960 -> 14894[label="",style="dashed", color="red", weight=0]; 16960[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16960 -> 16979[label="",style="dashed", color="magenta", weight=3]; 16960 -> 16980[label="",style="dashed", color="magenta", weight=3]; 16960 -> 16981[label="",style="dashed", color="magenta", weight=3]; 16959[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="triangle"];16959 -> 16982[label="",style="solid", color="black", weight=3]; 16961[label="wy7530",fontsize=16,color="green",shape="box"];16962[label="wy829",fontsize=16,color="green",shape="box"];16963[label="wy7530",fontsize=16,color="green",shape="box"];16964[label="wy831",fontsize=16,color="green",shape="box"];16965[label="wy758",fontsize=16,color="green",shape="box"];16966[label="wy732",fontsize=16,color="green",shape="box"];16967[label="wy762",fontsize=16,color="green",shape="box"];16968[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="box"];16968 -> 16991[label="",style="solid", color="black", weight=3]; 16969[label="wy758",fontsize=16,color="green",shape="box"];16970[label="wy732",fontsize=16,color="green",shape="box"];16971[label="wy762",fontsize=16,color="green",shape="box"];16972[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="box"];16972 -> 16992[label="",style="solid", color="black", weight=3]; 16973[label="fsEsOrdering (compareMyInt wy821 (Pos wy7350)) LT",fontsize=16,color="black",shape="box"];16973 -> 16993[label="",style="solid", color="black", weight=3]; 16974[label="fsEsOrdering (compareMyInt wy823 (Neg wy7350)) LT",fontsize=16,color="black",shape="box"];16974 -> 16994[label="",style="solid", color="black", weight=3]; 16975[label="wy784",fontsize=16,color="green",shape="box"];16976[label="wy780",fontsize=16,color="green",shape="box"];16977[label="wy750",fontsize=16,color="green",shape="box"];16978[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="box"];16978 -> 16995[label="",style="solid", color="black", weight=3]; 16979[label="wy784",fontsize=16,color="green",shape="box"];16980[label="wy780",fontsize=16,color="green",shape="box"];16981[label="wy750",fontsize=16,color="green",shape="box"];16982[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="box"];16982 -> 16996[label="",style="solid", color="black", weight=3]; 16991 -> 14839[label="",style="dashed", color="red", weight=0]; 16991[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845) (flip gtEsMyInt (Pos wy7350) wy758)",fontsize=16,color="magenta"];16991 -> 17001[label="",style="dashed", color="magenta", weight=3]; 16991 -> 17002[label="",style="dashed", color="magenta", weight=3]; 16991 -> 17003[label="",style="dashed", color="magenta", weight=3]; 16991 -> 17004[label="",style="dashed", color="magenta", weight=3]; 16992 -> 14839[label="",style="dashed", color="red", weight=0]; 16992[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846) (flip gtEsMyInt (Neg wy7350) wy758)",fontsize=16,color="magenta"];16992 -> 17005[label="",style="dashed", color="magenta", weight=3]; 16992 -> 17006[label="",style="dashed", color="magenta", weight=3]; 16992 -> 17007[label="",style="dashed", color="magenta", weight=3]; 16992 -> 17008[label="",style="dashed", color="magenta", weight=3]; 16993[label="not (esEsOrdering (compareMyInt wy821 (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];16993 -> 17009[label="",style="solid", color="black", weight=3]; 16994[label="not (esEsOrdering (compareMyInt wy823 (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];16994 -> 17010[label="",style="solid", color="black", weight=3]; 16995 -> 16244[label="",style="dashed", color="red", weight=0]; 16995[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847) (flip gtEsMyInt (Pos wy7530) wy780)",fontsize=16,color="magenta"];16995 -> 17011[label="",style="dashed", color="magenta", weight=3]; 16995 -> 17012[label="",style="dashed", color="magenta", weight=3]; 16995 -> 17013[label="",style="dashed", color="magenta", weight=3]; 16995 -> 17014[label="",style="dashed", color="magenta", weight=3]; 16996 -> 16244[label="",style="dashed", color="red", weight=0]; 16996[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848) (flip gtEsMyInt (Neg wy7530) wy780)",fontsize=16,color="magenta"];16996 -> 17015[label="",style="dashed", color="magenta", weight=3]; 16996 -> 17016[label="",style="dashed", color="magenta", weight=3]; 16996 -> 17017[label="",style="dashed", color="magenta", weight=3]; 16996 -> 17018[label="",style="dashed", color="magenta", weight=3]; 17001[label="wy845",fontsize=16,color="green",shape="box"];17002[label="wy758",fontsize=16,color="green",shape="box"];17003[label="wy758",fontsize=16,color="green",shape="box"];17004[label="Pos wy7350",fontsize=16,color="green",shape="box"];17005[label="wy846",fontsize=16,color="green",shape="box"];17006[label="wy758",fontsize=16,color="green",shape="box"];17007[label="wy758",fontsize=16,color="green",shape="box"];17008[label="Neg wy7350",fontsize=16,color="green",shape="box"];17009[label="not (esEsOrdering (primCmpInt wy821 (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17417[label="wy821/Pos wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17417[label="",style="solid", color="burlywood", weight=9]; 17417 -> 17023[label="",style="solid", color="burlywood", weight=3]; 17418[label="wy821/Neg wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17418[label="",style="solid", color="burlywood", weight=9]; 17418 -> 17024[label="",style="solid", color="burlywood", weight=3]; 17010[label="not (esEsOrdering (primCmpInt wy823 (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17419[label="wy823/Pos wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17419[label="",style="solid", color="burlywood", weight=9]; 17419 -> 17025[label="",style="solid", color="burlywood", weight=3]; 17420[label="wy823/Neg wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17420[label="",style="solid", color="burlywood", weight=9]; 17420 -> 17026[label="",style="solid", color="burlywood", weight=3]; 17011[label="Pos wy7530",fontsize=16,color="green",shape="box"];17012[label="wy780",fontsize=16,color="green",shape="box"];17013[label="wy847",fontsize=16,color="green",shape="box"];17014[label="wy780",fontsize=16,color="green",shape="box"];17015[label="Neg wy7530",fontsize=16,color="green",shape="box"];17016[label="wy780",fontsize=16,color="green",shape="box"];17017[label="wy848",fontsize=16,color="green",shape="box"];17018[label="wy780",fontsize=16,color="green",shape="box"];17023[label="not (esEsOrdering (primCmpInt (Pos wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17421[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17421[label="",style="solid", color="burlywood", weight=9]; 17421 -> 17070[label="",style="solid", color="burlywood", weight=3]; 17422[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17422[label="",style="solid", color="burlywood", weight=9]; 17422 -> 17071[label="",style="solid", color="burlywood", weight=3]; 17024[label="not (esEsOrdering (primCmpInt (Neg wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17423[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17423[label="",style="solid", color="burlywood", weight=9]; 17423 -> 17072[label="",style="solid", color="burlywood", weight=3]; 17424[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17424[label="",style="solid", color="burlywood", weight=9]; 17424 -> 17073[label="",style="solid", color="burlywood", weight=3]; 17025[label="not (esEsOrdering (primCmpInt (Pos wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17425[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17425[label="",style="solid", color="burlywood", weight=9]; 17425 -> 17074[label="",style="solid", color="burlywood", weight=3]; 17426[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17426[label="",style="solid", color="burlywood", weight=9]; 17426 -> 17075[label="",style="solid", color="burlywood", weight=3]; 17026[label="not (esEsOrdering (primCmpInt (Neg wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17427[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17427[label="",style="solid", color="burlywood", weight=9]; 17427 -> 17076[label="",style="solid", color="burlywood", weight=3]; 17428[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17428[label="",style="solid", color="burlywood", weight=9]; 17428 -> 17077[label="",style="solid", color="burlywood", weight=3]; 17070[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17070 -> 17082[label="",style="solid", color="black", weight=3]; 17071[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17429[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17429[label="",style="solid", color="burlywood", weight=9]; 17429 -> 17083[label="",style="solid", color="burlywood", weight=3]; 17430[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17430[label="",style="solid", color="burlywood", weight=9]; 17430 -> 17084[label="",style="solid", color="burlywood", weight=3]; 17072[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17072 -> 17085[label="",style="solid", color="black", weight=3]; 17073[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17431[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17431[label="",style="solid", color="burlywood", weight=9]; 17431 -> 17086[label="",style="solid", color="burlywood", weight=3]; 17432[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17432[label="",style="solid", color="burlywood", weight=9]; 17432 -> 17087[label="",style="solid", color="burlywood", weight=3]; 17074[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17074 -> 17088[label="",style="solid", color="black", weight=3]; 17075[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17433[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17433[label="",style="solid", color="burlywood", weight=9]; 17433 -> 17089[label="",style="solid", color="burlywood", weight=3]; 17434[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17434[label="",style="solid", color="burlywood", weight=9]; 17434 -> 17090[label="",style="solid", color="burlywood", weight=3]; 17076[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17076 -> 17091[label="",style="solid", color="black", weight=3]; 17077[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17435[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17435[label="",style="solid", color="burlywood", weight=9]; 17435 -> 17092[label="",style="solid", color="burlywood", weight=3]; 17436[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17436[label="",style="solid", color="burlywood", weight=9]; 17436 -> 17093[label="",style="solid", color="burlywood", weight=3]; 17082 -> 14963[label="",style="dashed", color="red", weight=0]; 17082[label="not (esEsOrdering (primCmpNat (Succ wy82100) wy7350) LT)",fontsize=16,color="magenta"];17082 -> 17098[label="",style="dashed", color="magenta", weight=3]; 17082 -> 17099[label="",style="dashed", color="magenta", weight=3]; 17083[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17083 -> 17100[label="",style="solid", color="black", weight=3]; 17084[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17084 -> 17101[label="",style="solid", color="black", weight=3]; 17085 -> 14929[label="",style="dashed", color="red", weight=0]; 17085[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17086[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17086 -> 17102[label="",style="solid", color="black", weight=3]; 17087[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17087 -> 17103[label="",style="solid", color="black", weight=3]; 17088 -> 13404[label="",style="dashed", color="red", weight=0]; 17088[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17089[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17089 -> 17104[label="",style="solid", color="black", weight=3]; 17090[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17090 -> 17105[label="",style="solid", color="black", weight=3]; 17091 -> 14963[label="",style="dashed", color="red", weight=0]; 17091[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy82300)) LT)",fontsize=16,color="magenta"];17091 -> 17106[label="",style="dashed", color="magenta", weight=3]; 17091 -> 17107[label="",style="dashed", color="magenta", weight=3]; 17092[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17092 -> 17108[label="",style="solid", color="black", weight=3]; 17093[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17093 -> 17109[label="",style="solid", color="black", weight=3]; 17098[label="wy7350",fontsize=16,color="green",shape="box"];17099[label="Succ wy82100",fontsize=16,color="green",shape="box"];17100 -> 14963[label="",style="dashed", color="red", weight=0]; 17100[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];17100 -> 17114[label="",style="dashed", color="magenta", weight=3]; 17100 -> 17115[label="",style="dashed", color="magenta", weight=3]; 17101 -> 14908[label="",style="dashed", color="red", weight=0]; 17101[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17102 -> 14929[label="",style="dashed", color="red", weight=0]; 17102[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17103 -> 14908[label="",style="dashed", color="red", weight=0]; 17103[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17104 -> 13404[label="",style="dashed", color="red", weight=0]; 17104[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17105 -> 14908[label="",style="dashed", color="red", weight=0]; 17105[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17106[label="Succ wy82300",fontsize=16,color="green",shape="box"];17107[label="wy7350",fontsize=16,color="green",shape="box"];17108 -> 14963[label="",style="dashed", color="red", weight=0]; 17108[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];17108 -> 17116[label="",style="dashed", color="magenta", weight=3]; 17108 -> 17117[label="",style="dashed", color="magenta", weight=3]; 17109 -> 14908[label="",style="dashed", color="red", weight=0]; 17109[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17114[label="Succ wy73500",fontsize=16,color="green",shape="box"];17115[label="Zero",fontsize=16,color="green",shape="box"];17116[label="Zero",fontsize=16,color="green",shape="box"];17117[label="Succ wy73500",fontsize=16,color="green",shape="box"];} ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip(Main.Zero, Main.Neg(Main.Zero)) new_psMyInt0(Main.Neg(x0), x1) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip(Main.Zero, Main.Pos(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_flip(x0, Main.Pos(Main.Succ(x1))) new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip(x0, Main.Neg(Main.Succ(x1))) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (10) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) the following chains were created: *We consider the chain new_takeWhile2(x4, x5, x6, x7) -> new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5)), new_takeWhile12(x8, x9, x10, x11, MyTrue) -> new_takeWhile2(x8, x11, x10, new_psMyInt0(x10, x11)) which results in the following constraint: (1) (new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5))=new_takeWhile12(x8, x9, x10, x11, MyTrue) ==> new_takeWhile2(x4, x5, x6, x7)_>=_new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_flip(x4, x5)=MyTrue ==> new_takeWhile2(x4, x5, x6, x7)_>=_new_takeWhile12(x4, x5, x6, x7, new_flip(x4, x5))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip(x4, x5)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue ==> new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) (4) (new_not2=MyTrue ==> new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) (5) (new_not0(x26, Main.Succ(x25))=MyTrue ==> new_takeWhile2(x26, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(x26, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(x26, Main.Neg(Main.Succ(x25))))) (6) (new_not1=MyTrue ==> new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) (7) (new_not0(Main.Succ(x29), Main.Zero)=MyTrue ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (8) (new_not2=MyTrue ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (9) (new_not5=MyTrue ==> new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (5) using rule (VII) which results in the following new constraint: (11) (Main.Succ(x25)=x30 & new_not0(x26, x30)=MyTrue ==> new_takeWhile2(x26, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(x26, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(x26, Main.Neg(Main.Succ(x25))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (12) (new_not5=MyTrue ==> new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) We simplified constraint (7) using rule (VII) which results in the following new constraint: (13) (Main.Succ(x29)=x38 & Main.Zero=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (14) (new_not5=MyTrue ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (15) (new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (16) (new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not0(x26, x30)=MyTrue which results in the following new constraints: (17) (new_not1=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile2(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Succ(x31), Main.Neg(Main.Succ(x25))))) (18) (new_not3=MyTrue & Main.Succ(x25)=Main.Succ(x32) ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) (19) (new_not0(x34, x33)=MyTrue & Main.Succ(x25)=Main.Succ(x33) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x33 ==> new_takeWhile2(x34, Main.Neg(Main.Succ(x35)), x36, x37)_>=_new_takeWhile12(x34, Main.Neg(Main.Succ(x35)), x36, x37, new_flip(x34, Main.Neg(Main.Succ(x35))))) ==> new_takeWhile2(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x25))))) (20) (new_not2=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) We solved constraint (17) using rules (I), (II).We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) We simplified constraint (19) using rules (I), (II), (III), (IV) which results in the following new constraint: (22) (new_takeWhile2(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7)_>=_new_takeWhile12(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) We solved constraint (20) using rules (I), (II).We simplified constraint (12) using rule (IV) which results in the following new constraint: (23) (new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: (24) (new_not1=MyTrue & Main.Succ(x29)=Main.Succ(x40) & Main.Zero=Main.Zero ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (25) (new_not3=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Succ(x41) ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (26) (new_not0(x43, x42)=MyTrue & Main.Succ(x29)=Main.Succ(x43) & Main.Zero=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Succ(x44)=x43 & Main.Zero=x42 ==> new_takeWhile2(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46)_>=_new_takeWhile12(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46, new_flip(Main.Succ(x44), Main.Neg(Main.Zero)))) ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (27) (new_not2=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Zero ==> new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (24) using rules (I), (II), (IV) which results in the following new constraint: (28) (new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) We solved constraint (25) using rules (I), (II).We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: (29) (new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) For Pair new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) the following chains were created: *We consider the chain new_takeWhile12(x12, x13, x14, x15, MyTrue) -> new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15)), new_takeWhile2(x16, x17, x18, x19) -> new_takeWhile12(x16, x17, x18, x19, new_flip(x16, x17)) which results in the following constraint: (1) (new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))=new_takeWhile2(x16, x17, x18, x19) ==> new_takeWhile12(x12, x13, x14, x15, MyTrue)_>=_new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile12(x12, x13, x14, x15, MyTrue)_>=_new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) *(new_takeWhile2(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x24), Main.Pos(Main.Zero), x6, x7, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) *(new_takeWhile2(Main.Zero, Main.Pos(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Pos(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Pos(Main.Zero)))) *(new_takeWhile2(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Succ(x25)), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) *(new_takeWhile2(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7)_>=_new_takeWhile12(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x6, x7, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) *(new_takeWhile2(x28, Main.Pos(Main.Succ(x27)), x6, x7)_>=_new_takeWhile12(x28, Main.Pos(Main.Succ(x27)), x6, x7, new_flip(x28, Main.Pos(Main.Succ(x27))))) *(new_takeWhile2(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Succ(x29), Main.Neg(Main.Zero), x6, x7, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) *(new_takeWhile2(Main.Zero, Main.Neg(Main.Zero), x6, x7)_>=_new_takeWhile12(Main.Zero, Main.Neg(Main.Zero), x6, x7, new_flip(Main.Zero, Main.Neg(Main.Zero)))) *new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) *(new_takeWhile12(x12, x13, x14, x15, MyTrue)_>=_new_takeWhile2(x12, x15, x14, new_psMyInt0(x14, x15))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile2(wy7530, wy831, wy750, wy840) -> new_takeWhile12(wy7530, wy831, wy750, wy840, new_flip(wy7530, wy831)) new_takeWhile12(wy7530, wy749, wy750, wy831, MyTrue) -> new_takeWhile2(wy7530, wy831, wy750, new_psMyInt0(wy750, wy831)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip(Main.Zero, Main.Neg(Main.Zero)) new_psMyInt0(Main.Neg(x0), x1) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip(Main.Zero, Main.Pos(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_flip(x0, Main.Pos(Main.Succ(x1))) new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip(x0, Main.Neg(Main.Succ(x1))) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (15) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: *We consider the chain new_takeWhile110(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile8(x10, x11, x12, x13, x14) -> new_takeWhile110(x10, x11, x12, x13, x14, new_flip1(x10, x11)) which results in the following constraint: (1) (new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile8(x10, x11, x12, x13, x14) ==> new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) For Pair new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) the following chains were created: *We consider the chain new_takeWhile8(x15, x16, x17, x18, x19) -> new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16)), new_takeWhile110(x20, x21, x22, x23, x24, MyTrue) -> new_takeWhile8(x20, x24, x22, x23, new_psMyInt(x22, x23, x24)) which results in the following constraint: (1) (new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16))=new_takeWhile110(x20, x21, x22, x23, x24, MyTrue) ==> new_takeWhile8(x15, x16, x17, x18, x19)_>=_new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_flip1(x15, x16)=MyTrue ==> new_takeWhile8(x15, x16, x17, x18, x19)_>=_new_takeWhile110(x15, x16, x17, x18, x19, new_flip1(x15, x16))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x15, x16)=MyTrue which results in the following new constraints: (3) (new_not10=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) (4) (new_not10=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) (5) (new_not10=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) (6) (new_not8=MyTrue ==> new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) (7) (new_not8=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) (8) (new_not11=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) (9) (new_not7(x34, Main.Zero)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) (10) (new_not11=MyTrue ==> new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) (11) (new_not7(x37, x38)=MyTrue ==> new_takeWhile8(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x17, x18, x19, new_flip1(Main.Pos(x38), Main.Pos(Main.Succ(x37))))) (12) (new_not9(Main.Zero, x39)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) (13) (new_not9(x41, x40)=MyTrue ==> new_takeWhile8(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x17, x18, x19, new_flip1(Main.Neg(x41), Main.Neg(Main.Succ(x40))))) (14) (new_not10=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (15) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (16) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (17) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (18) (new_not4=MyTrue ==> new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (19) (new_not4=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (20) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) We simplified constraint (9) using rule (VII) which results in the following new constraint: (21) (Main.Zero=x42 & new_not7(x34, x42)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (22) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not7(x37, x38)=MyTrue which results in the following new constraints: (23) (new_not12(x47, x46)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) (24) (new_not8=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) We simplified constraint (12) using rule (VII) which results in the following new constraint: (25) (Main.Zero=x49 & new_not9(x49, x39)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not9(x41, x40)=MyTrue which results in the following new constraints: (26) (new_not11=MyTrue ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) (27) (new_not12(x55, x54)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (28) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (15) using rule (IV) which results in the following new constraint: (29) (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (16) using rule (IV) which results in the following new constraint: (30) (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (17) using rule (IV) which results in the following new constraint: (31) (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (18) using rule (IV) which results in the following new constraint: (32) (new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) We simplified constraint (19) using rule (IV) which results in the following new constraint: (33) (new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) We simplified constraint (20) using rule (IV) which results in the following new constraint: (34) (new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) We simplified constraint (21) using rule (V) (with possible (I) afterwards) using induction on new_not7(x34, x42)=MyTrue which results in the following new constraints: (35) (new_not12(x44, x43)=MyTrue & Main.Zero=Main.Succ(x43) ==> new_takeWhile8(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero)))) (36) (new_not8=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile8(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) We solved constraint (35) using rules (I), (II).We simplified constraint (36) using rules (I), (II), (IV) which results in the following new constraint: (37) (new_takeWhile8(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) We simplified constraint (22) using rule (IV) which results in the following new constraint: (38) (new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) We simplified constraint (23) using rule (IV) which results in the following new constraint: (39) (new_takeWhile8(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) We simplified constraint (24) using rule (IV) which results in the following new constraint: (40) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on new_not9(x49, x39)=MyTrue which results in the following new constraints: (41) (new_not11=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile8(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) (42) (new_not12(x52, x51)=MyTrue & Main.Zero=Main.Succ(x52) ==> new_takeWhile8(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero)))) We simplified constraint (41) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_takeWhile8(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) We solved constraint (42) using rules (I), (II).We simplified constraint (26) using rule (IV) which results in the following new constraint: (44) (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) We simplified constraint (27) using rule (IV) which results in the following new constraint: (45) (new_takeWhile8(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) We simplified constraint (28) using rule (IV) which results in the following new constraint: (46) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) *(new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) *new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) *(new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) *(new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) *(new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) *(new_takeWhile8(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x17, x18, x19, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) *(new_takeWhile8(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) *(new_takeWhile8(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) *(new_takeWhile8(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) *(new_takeWhile8(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x17, x18, x19, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) *(new_takeWhile8(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) *(new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) *(new_takeWhile8(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) *(new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x17, x18, x19, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) *(new_takeWhile8(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19)_>=_new_takeWhile110(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x17, x18, x19, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) *(new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x17, x18, x19, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(wy753, wy780, wy784, wy750, wy816) -> new_takeWhile110(wy753, wy780, wy784, wy750, wy816, new_flip1(wy753, wy780)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8)) (new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8)) (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)),new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero))) (new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)),new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0))) (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0))) (new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)),new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1))) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) 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. ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5)) ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11)) ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue)) ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (49) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8),new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8)) ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) 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. ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1))) ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) 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. ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (69) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5)) ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue)) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8)) ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (84) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8)) ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (88) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (90) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (94) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8)) ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11)) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8)) ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (118) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 0 POL(Main.Zero) = 1 POL(MyFalse) = 0 POL(MyTrue) = 0 POL(new_not10) = 0 POL(new_not11) = 0 POL(new_not12(x_1, x_2)) = 0 POL(new_not4) = 0 POL(new_not5) = 0 POL(new_not8) = 0 POL(new_primMinusNat0(x_1, x_2)) = 0 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 POL(new_primPlusInt1(x_1, x_2)) = 0 POL(new_primPlusInt2(x_1, x_2)) = x_1 POL(new_primPlusNat0(x_1, x_2)) = x_1 POL(new_psMyInt(x_1, x_2, x_3)) = 0 POL(new_takeWhile110(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 POL(new_takeWhile8(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (124) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (125) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: *We consider the chain new_takeWhile110(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) ==> new_takeWhile110(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile8(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt(x7, x8, Main.Pos(Main.Zero)))) *We consider the chain new_takeWhile110(x13, x14, x15, x16, x17, MyTrue) -> new_takeWhile8(x13, x17, x15, x16, new_psMyInt(x15, x16, x17)), new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) -> new_takeWhile110(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x13, x17, x15, x16, new_psMyInt(x15, x16, x17))=new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) ==> new_takeWhile110(x13, x14, x15, x16, x17, MyTrue)_>=_new_takeWhile8(x13, x17, x15, x16, new_psMyInt(x15, x16, x17))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt(x15, x16, Main.Neg(Main.Succ(x19))))) *We consider the chain new_takeWhile110(x23, x24, x25, x26, x27, MyTrue) -> new_takeWhile8(x23, x27, x25, x26, new_psMyInt(x25, x26, x27)), new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x23, x27, x25, x26, new_psMyInt(x25, x26, x27))=new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) ==> new_takeWhile110(x23, x24, x25, x26, x27, MyTrue)_>=_new_takeWhile8(x23, x27, x25, x26, new_psMyInt(x25, x26, x27))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt(x25, x26, Main.Pos(Main.Zero)))) *We consider the chain new_takeWhile110(x31, x32, x33, x34, x35, MyTrue) -> new_takeWhile8(x31, x35, x33, x34, new_psMyInt(x33, x34, x35)), new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) -> new_takeWhile110(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x31, x35, x33, x34, new_psMyInt(x33, x34, x35))=new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) ==> new_takeWhile110(x31, x32, x33, x34, x35, MyTrue)_>=_new_takeWhile8(x31, x35, x33, x34, new_psMyInt(x33, x34, x35))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt(x33, x34, Main.Pos(Main.Zero)))) *We consider the chain new_takeWhile110(x40, x41, x42, x43, x44, MyTrue) -> new_takeWhile8(x40, x44, x42, x43, new_psMyInt(x42, x43, x44)), new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x40, x44, x42, x43, new_psMyInt(x42, x43, x44))=new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) ==> new_takeWhile110(x40, x41, x42, x43, x44, MyTrue)_>=_new_takeWhile8(x40, x44, x42, x43, new_psMyInt(x42, x43, x44))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt(x42, x43, Main.Neg(Main.Succ(x45))))) *We consider the chain new_takeWhile110(x49, x50, x51, x52, x53, MyTrue) -> new_takeWhile8(x49, x53, x51, x52, new_psMyInt(x51, x52, x53)), new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x49, x53, x51, x52, new_psMyInt(x51, x52, x53))=new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) ==> new_takeWhile110(x49, x50, x51, x52, x53, MyTrue)_>=_new_takeWhile8(x49, x53, x51, x52, new_psMyInt(x51, x52, x53))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile110(x57, x58, x59, x60, x61, MyTrue) -> new_takeWhile8(x57, x61, x59, x60, new_psMyInt(x59, x60, x61)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x57, x61, x59, x60, new_psMyInt(x59, x60, x61))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) ==> new_takeWhile110(x57, x58, x59, x60, x61, MyTrue)_>=_new_takeWhile8(x57, x61, x59, x60, new_psMyInt(x59, x60, x61))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile110(x66, x67, x68, x69, x70, MyTrue) -> new_takeWhile8(x66, x70, x68, x69, new_psMyInt(x68, x69, x70)), new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x66, x70, x68, x69, new_psMyInt(x68, x69, x70))=new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) ==> new_takeWhile110(x66, x67, x68, x69, x70, MyTrue)_>=_new_takeWhile8(x66, x70, x68, x69, new_psMyInt(x68, x69, x70))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile110(x74, x75, x76, x77, x78, MyTrue) -> new_takeWhile8(x74, x78, x76, x77, new_psMyInt(x76, x77, x78)), new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x74, x78, x76, x77, new_psMyInt(x76, x77, x78))=new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) ==> new_takeWhile110(x74, x75, x76, x77, x78, MyTrue)_>=_new_takeWhile8(x74, x78, x76, x77, new_psMyInt(x76, x77, x78))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) *We consider the chain new_takeWhile110(x83, x84, x85, x86, x87, MyTrue) -> new_takeWhile8(x83, x87, x85, x86, new_psMyInt(x85, x86, x87)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92, new_not12(x89, x88)) which results in the following constraint: (1) (new_takeWhile8(x83, x87, x85, x86, new_psMyInt(x85, x86, x87))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) ==> new_takeWhile110(x83, x84, x85, x86, x87, MyTrue)_>=_new_takeWhile8(x83, x87, x85, x86, new_psMyInt(x85, x86, x87))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) *We consider the chain new_takeWhile110(x93, x94, x95, x96, x97, MyTrue) -> new_takeWhile8(x93, x97, x95, x96, new_psMyInt(x95, x96, x97)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x93, x97, x95, x96, new_psMyInt(x95, x96, x97))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) ==> new_takeWhile110(x93, x94, x95, x96, x97, MyTrue)_>=_new_takeWhile8(x93, x97, x95, x96, new_psMyInt(x95, x96, x97))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile110(x101, x102, x103, x104, x105, MyTrue) -> new_takeWhile8(x101, x105, x103, x104, new_psMyInt(x103, x104, x105)), new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x101, x105, x103, x104, new_psMyInt(x103, x104, x105))=new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) ==> new_takeWhile110(x101, x102, x103, x104, x105, MyTrue)_>=_new_takeWhile8(x101, x105, x103, x104, new_psMyInt(x103, x104, x105))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile110(x110, x111, x112, x113, x114, MyTrue) -> new_takeWhile8(x110, x114, x112, x113, new_psMyInt(x112, x113, x114)), new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119, new_not12(x115, x116)) which results in the following constraint: (1) (new_takeWhile8(x110, x114, x112, x113, new_psMyInt(x112, x113, x114))=new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) ==> new_takeWhile110(x110, x111, x112, x113, x114, MyTrue)_>=_new_takeWhile8(x110, x114, x112, x113, new_psMyInt(x112, x113, x114))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) *We consider the chain new_takeWhile110(x120, x121, x122, x123, x124, MyTrue) -> new_takeWhile8(x120, x124, x122, x123, new_psMyInt(x122, x123, x124)), new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x120, x124, x122, x123, new_psMyInt(x122, x123, x124))=new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) ==> new_takeWhile110(x120, x121, x122, x123, x124, MyTrue)_>=_new_takeWhile8(x120, x124, x122, x123, new_psMyInt(x122, x123, x124))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile110(x128, x129, x130, x131, x132, MyTrue) -> new_takeWhile8(x128, x132, x130, x131, new_psMyInt(x130, x131, x132)), new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136, MyTrue) which results in the following constraint: (1) (new_takeWhile8(x128, x132, x130, x131, new_psMyInt(x130, x131, x132))=new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) ==> new_takeWhile110(x128, x129, x130, x131, x132, MyTrue)_>=_new_takeWhile8(x128, x132, x130, x131, new_psMyInt(x130, x131, x132))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) For Pair new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue), new_takeWhile110(x140, x141, x142, x143, x144, MyTrue) -> new_takeWhile8(x140, x144, x142, x143, new_psMyInt(x142, x143, x144)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)=new_takeWhile110(x140, x141, x142, x143, x144, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) For Pair new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194) -> new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue), new_takeWhile110(x195, x196, x197, x198, x199, MyTrue) -> new_takeWhile8(x195, x199, x197, x198, new_psMyInt(x197, x198, x199)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)=new_takeWhile110(x195, x196, x197, x198, x199, MyTrue) ==> new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) For Pair new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue), new_takeWhile110(x278, x279, x280, x281, x282, MyTrue) -> new_takeWhile8(x278, x282, x280, x281, new_psMyInt(x280, x281, x282)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)=new_takeWhile110(x278, x279, x280, x281, x282, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) For Pair new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331) -> new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue), new_takeWhile110(x332, x333, x334, x335, x336, MyTrue) -> new_takeWhile8(x332, x336, x334, x335, new_psMyInt(x334, x335, x336)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)=new_takeWhile110(x332, x333, x334, x335, x336, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) For Pair new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue), new_takeWhile110(x401, x402, x403, x404, x405, MyTrue) -> new_takeWhile8(x401, x405, x403, x404, new_psMyInt(x403, x404, x405)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)=new_takeWhile110(x401, x402, x403, x404, x405, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue), new_takeWhile110(x469, x470, x471, x472, x473, MyTrue) -> new_takeWhile8(x469, x473, x471, x472, new_psMyInt(x471, x472, x473)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)=new_takeWhile110(x469, x470, x471, x472, x473, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue), new_takeWhile110(x523, x524, x525, x526, x527, MyTrue) -> new_takeWhile8(x523, x527, x525, x526, new_psMyInt(x525, x526, x527)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)=new_takeWhile110(x523, x524, x525, x526, x527, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue), new_takeWhile110(x591, x592, x593, x594, x595, MyTrue) -> new_takeWhile8(x591, x595, x593, x594, new_psMyInt(x593, x594, x595)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)=new_takeWhile110(x591, x592, x593, x594, x595, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue), new_takeWhile110(x645, x646, x647, x648, x649, MyTrue) -> new_takeWhile8(x645, x649, x647, x648, new_psMyInt(x647, x648, x649)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)=new_takeWhile110(x645, x646, x647, x648, x649, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710)), new_takeWhile110(x715, x716, x717, x718, x719, MyTrue) -> new_takeWhile8(x715, x719, x717, x718, new_psMyInt(x717, x718, x719)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))=new_takeWhile110(x715, x716, x717, x718, x719, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not12(x711, x710)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x711, x710)=MyTrue which results in the following new constraints: (3) (new_not10=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) (4) (new_not11=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) (5) (new_not12(x1126, x1125)=MyTrue & (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) (6) (new_not8=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (8) (new_not5=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) with sigma = [x1127 / x712, x1128 / x713, x1129 / x714] which results in the following new constraint: (9) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (10) (new_not4=MyTrue ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue), new_takeWhile110(x798, x799, x800, x801, x802, MyTrue) -> new_takeWhile8(x798, x802, x800, x801, new_psMyInt(x800, x801, x802)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)=new_takeWhile110(x798, x799, x800, x801, x802, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) For Pair new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue), new_takeWhile110(x852, x853, x854, x855, x856, MyTrue) -> new_takeWhile8(x852, x856, x854, x855, new_psMyInt(x854, x855, x856)) which results in the following constraint: (1) (new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)=new_takeWhile110(x852, x853, x854, x855, x856, MyTrue) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918)), new_takeWhile110(x922, x923, x924, x925, x926, MyTrue) -> new_takeWhile8(x922, x926, x924, x925, new_psMyInt(x924, x925, x926)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))=new_takeWhile110(x922, x923, x924, x925, x926, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not12(x917, x918)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x917, x918)=MyTrue which results in the following new constraints: (3) (new_not10=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) (4) (new_not11=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) (5) (new_not12(x1133, x1132)=MyTrue & (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) (6) (new_not8=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (8) (new_not5=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) with sigma = [x1134 / x919, x1135 / x920, x1136 / x921] which results in the following new constraint: (9) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (10) (new_not4=MyTrue ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue), new_takeWhile110(x1005, x1006, x1007, x1008, x1009, MyTrue) -> new_takeWhile8(x1005, x1009, x1007, x1008, new_psMyInt(x1007, x1008, x1009)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)=new_takeWhile110(x1005, x1006, x1007, x1008, x1009, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) For Pair new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue), new_takeWhile110(x1059, x1060, x1061, x1062, x1063, MyTrue) -> new_takeWhile8(x1059, x1063, x1061, x1062, new_psMyInt(x1061, x1062, x1063)) which results in the following constraint: (1) (new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)=new_takeWhile110(x1059, x1060, x1061, x1062, x1063, MyTrue) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) *(new_takeWhile110(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt(x7, x8, Main.Pos(Main.Zero)))) *(new_takeWhile110(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile8(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt(x15, x16, Main.Neg(Main.Succ(x19))))) *(new_takeWhile110(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt(x25, x26, Main.Pos(Main.Zero)))) *(new_takeWhile110(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt(x33, x34, Main.Pos(Main.Zero)))) *(new_takeWhile110(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt(x42, x43, Main.Neg(Main.Succ(x45))))) *(new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) *(new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) *(new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) *(new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) *new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) *new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile110(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) *new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) *new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile110(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) *new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) *new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) *new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) *new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) *new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) *new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) *new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) *new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) *(new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile110(wy753, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile8(wy753, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile8(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile110(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile8(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile110(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile111(wy742, wy743, wy744, Main.Succ(wy7450), Main.Succ(wy7460), wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) -> new_takeWhile111(wy742, wy743, wy744, wy7450, wy7460, wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (128) 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: *new_takeWhile111(wy742, wy743, wy744, Main.Succ(wy7450), Main.Succ(wy7460), wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) -> new_takeWhile111(wy742, wy743, wy744, wy7450, wy7460, wy747, wy748, wy749, wy750, wy751, wy752, wy753, wy754, wy755, wy756, h) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 11, 12 >= 12, 13 >= 13, 14 >= 14, 15 >= 15, 16 >= 16 ---------------------------------------- (129) YES ---------------------------------------- (130) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (131) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (132) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (133) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) the following chains were created: *We consider the chain new_takeWhile9(x5, x6, x7, x8, x9) -> new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6)), new_takeWhile113(x10, x11, x12, x13, x14, MyTrue) -> new_takeWhile9(x10, x14, x12, x13, new_psMyInt2(x12, x13, x14)) which results in the following constraint: (1) (new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6))=new_takeWhile113(x10, x11, x12, x13, x14, MyTrue) ==> new_takeWhile9(x5, x6, x7, x8, x9)_>=_new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_flip1(x5, x6)=MyTrue ==> new_takeWhile9(x5, x6, x7, x8, x9)_>=_new_takeWhile113(x5, x6, x7, x8, x9, new_flip1(x5, x6))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x5, x6)=MyTrue which results in the following new constraints: (3) (new_not10=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) (4) (new_not10=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) (5) (new_not10=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) (6) (new_not8=MyTrue ==> new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) (7) (new_not8=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) (8) (new_not11=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) (9) (new_not7(x34, Main.Zero)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) (10) (new_not11=MyTrue ==> new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) (11) (new_not7(x37, x38)=MyTrue ==> new_takeWhile9(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x38), Main.Pos(Main.Succ(x37)), x7, x8, x9, new_flip1(Main.Pos(x38), Main.Pos(Main.Succ(x37))))) (12) (new_not9(Main.Zero, x39)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) (13) (new_not9(x41, x40)=MyTrue ==> new_takeWhile9(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x41), Main.Neg(Main.Succ(x40)), x7, x8, x9, new_flip1(Main.Neg(x41), Main.Neg(Main.Succ(x40))))) (14) (new_not10=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (15) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (16) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (17) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (18) (new_not4=MyTrue ==> new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (19) (new_not4=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (20) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) We simplified constraint (9) using rule (VII) which results in the following new constraint: (21) (Main.Zero=x42 & new_not7(x34, x42)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x34)), Main.Neg(Main.Zero)))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (22) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not7(x37, x38)=MyTrue which results in the following new constraints: (23) (new_not12(x47, x46)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) (24) (new_not8=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) We simplified constraint (12) using rule (VII) which results in the following new constraint: (25) (Main.Zero=x49 & new_not9(x49, x39)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x39)), Main.Pos(Main.Zero)))) We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not9(x41, x40)=MyTrue which results in the following new constraints: (26) (new_not11=MyTrue ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) (27) (new_not12(x55, x54)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (28) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (15) using rule (IV) which results in the following new constraint: (29) (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (16) using rule (IV) which results in the following new constraint: (30) (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) We simplified constraint (17) using rule (IV) which results in the following new constraint: (31) (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) We simplified constraint (18) using rule (IV) which results in the following new constraint: (32) (new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) We simplified constraint (19) using rule (IV) which results in the following new constraint: (33) (new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) We simplified constraint (20) using rule (IV) which results in the following new constraint: (34) (new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) We simplified constraint (21) using rule (V) (with possible (I) afterwards) using induction on new_not7(x34, x42)=MyTrue which results in the following new constraints: (35) (new_not12(x44, x43)=MyTrue & Main.Zero=Main.Succ(x43) ==> new_takeWhile9(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x44)), Main.Neg(Main.Zero)))) (36) (new_not8=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile9(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) We solved constraint (35) using rules (I), (II).We simplified constraint (36) using rules (I), (II), (IV) which results in the following new constraint: (37) (new_takeWhile9(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) We simplified constraint (22) using rule (IV) which results in the following new constraint: (38) (new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) We simplified constraint (23) using rule (IV) which results in the following new constraint: (39) (new_takeWhile9(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) We simplified constraint (24) using rule (IV) which results in the following new constraint: (40) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on new_not9(x49, x39)=MyTrue which results in the following new constraints: (41) (new_not11=MyTrue & Main.Zero=Main.Zero ==> new_takeWhile9(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) (42) (new_not12(x52, x51)=MyTrue & Main.Zero=Main.Succ(x52) ==> new_takeWhile9(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x51)), Main.Pos(Main.Zero)))) We simplified constraint (41) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_takeWhile9(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) We solved constraint (42) using rules (I), (II).We simplified constraint (26) using rule (IV) which results in the following new constraint: (44) (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) We simplified constraint (27) using rule (IV) which results in the following new constraint: (45) (new_takeWhile9(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) We simplified constraint (28) using rule (IV) which results in the following new constraint: (46) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) For Pair new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: *We consider the chain new_takeWhile113(x15, x16, x17, x18, x19, MyTrue) -> new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19)), new_takeWhile9(x20, x21, x22, x23, x24) -> new_takeWhile113(x20, x21, x22, x23, x24, new_flip1(x20, x21)) which results in the following constraint: (1) (new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))=new_takeWhile9(x20, x21, x22, x23, x24) ==> new_takeWhile113(x15, x16, x17, x18, x19, MyTrue)_>=_new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile113(x15, x16, x17, x18, x19, MyTrue)_>=_new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) *(new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)))) *(new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)))) *(new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)))) *(new_takeWhile9(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(x31), Main.Pos(Main.Succ(x30)), x7, x8, x9, new_flip1(Main.Neg(x31), Main.Pos(Main.Succ(x30))))) *(new_takeWhile9(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x32)), Main.Pos(Main.Zero)))) *(new_takeWhile9(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x33)), Main.Neg(Main.Zero)))) *(new_takeWhile9(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x45)), Main.Neg(Main.Zero)))) *(new_takeWhile9(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(x36), Main.Neg(Main.Succ(x35)), x7, x8, x9, new_flip1(Main.Pos(x36), Main.Neg(Main.Succ(x35))))) *(new_takeWhile9(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47)), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x46)), Main.Pos(Main.Succ(x47))))) *(new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48)), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x48))))) *(new_takeWhile9(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Succ(x50)), Main.Pos(Main.Zero)))) *(new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53)), x7, x8, x9, new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x53))))) *(new_takeWhile9(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9)_>=_new_takeWhile113(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54)), x7, x8, x9, new_flip1(Main.Neg(Main.Succ(x55)), Main.Neg(Main.Succ(x54))))) *(new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x7, x8, x9, new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)))) *new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) *(new_takeWhile113(x15, x16, x17, x18, x19, MyTrue)_>=_new_takeWhile9(x15, x19, x17, x18, new_psMyInt2(x17, x18, x19))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (134) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (135) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(wy735, wy758, wy762, wy732, wy813) -> new_takeWhile113(wy735, wy758, wy762, wy732, wy813, new_flip1(wy735, wy758)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8)) (new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8)) (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)),new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero))) (new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)),new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0))) (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0))) (new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)),new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1))) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10)) ---------------------------------------- (136) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not8) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not8) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not7(x0, Main.Zero)) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (137) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) 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: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (144) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (146) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (147) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (149) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (150) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5)) ---------------------------------------- (152) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (153) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11)) ---------------------------------------- (154) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (155) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (156) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (163) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue)) ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5)) ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue)) ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (173) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Pos(Main.Succ(x1)), y2, y3, y4, new_not7(x1, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8),new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8)) ---------------------------------------- (174) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (175) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (176) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (177) 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. ---------------------------------------- (178) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (179) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (180) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (181) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not9(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1))) ---------------------------------------- (182) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (183) 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. ---------------------------------------- (184) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (185) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (186) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (187) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5)) ---------------------------------------- (188) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (189) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue)) ---------------------------------------- (190) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (191) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8)) ---------------------------------------- (192) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (193) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (195) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (197) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (199) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (201) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (203) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8)) ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (205) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (206) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (207) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (212) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (213) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) ---------------------------------------- (214) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (215) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8)) ---------------------------------------- (216) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (217) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (218) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (219) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (220) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (221) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (222) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (223) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (224) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (225) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not12(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10)) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11)) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1))) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8)) ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not8) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (229) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (230) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (231) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (232) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (233) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) ---------------------------------------- (234) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (235) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (237) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) ---------------------------------------- (238) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (239) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), y2, y3, y4, MyTrue) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 0 POL(Main.Zero) = 1 POL(MyFalse) = 0 POL(MyTrue) = 0 POL(new_not10) = 0 POL(new_not11) = 0 POL(new_not12(x_1, x_2)) = 0 POL(new_not4) = 0 POL(new_not5) = 0 POL(new_not8) = 0 POL(new_primMinusNat0(x_1, x_2)) = 0 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 POL(new_primPlusInt1(x_1, x_2)) = 0 POL(new_primPlusInt2(x_1, x_2)) = x_1 POL(new_primPlusNat0(x_1, x_2)) = x_1 POL(new_primPlusNat2(x_1, x_2)) = x_1 POL(new_psMyInt2(x_1, x_2, x_3)) = 0 POL(new_takeWhile113(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 POL(new_takeWhile9(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) ---------------------------------------- (240) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (241) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (243) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: *We consider the chain new_takeWhile113(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile9(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x10, x11, x12) ==> new_takeWhile113(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile9(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt2(x7, x8, Main.Pos(Main.Zero)))) *We consider the chain new_takeWhile113(x13, x14, x15, x16, x17, MyTrue) -> new_takeWhile9(x13, x17, x15, x16, new_psMyInt2(x15, x16, x17)), new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) -> new_takeWhile113(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x13, x17, x15, x16, new_psMyInt2(x15, x16, x17))=new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x20, x21, x22) ==> new_takeWhile113(x13, x14, x15, x16, x17, MyTrue)_>=_new_takeWhile9(x13, x17, x15, x16, new_psMyInt2(x15, x16, x17))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt2(x15, x16, Main.Neg(Main.Succ(x19))))) *We consider the chain new_takeWhile113(x23, x24, x25, x26, x27, MyTrue) -> new_takeWhile9(x23, x27, x25, x26, new_psMyInt2(x25, x26, x27)), new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x23, x27, x25, x26, new_psMyInt2(x25, x26, x27))=new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x28, x29, x30) ==> new_takeWhile113(x23, x24, x25, x26, x27, MyTrue)_>=_new_takeWhile9(x23, x27, x25, x26, new_psMyInt2(x25, x26, x27))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt2(x25, x26, Main.Pos(Main.Zero)))) *We consider the chain new_takeWhile113(x31, x32, x33, x34, x35, MyTrue) -> new_takeWhile9(x31, x35, x33, x34, new_psMyInt2(x33, x34, x35)), new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) -> new_takeWhile113(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x31, x35, x33, x34, new_psMyInt2(x33, x34, x35))=new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x37, x38, x39) ==> new_takeWhile113(x31, x32, x33, x34, x35, MyTrue)_>=_new_takeWhile9(x31, x35, x33, x34, new_psMyInt2(x33, x34, x35))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt2(x33, x34, Main.Pos(Main.Zero)))) *We consider the chain new_takeWhile113(x40, x41, x42, x43, x44, MyTrue) -> new_takeWhile9(x40, x44, x42, x43, new_psMyInt2(x42, x43, x44)), new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x40, x44, x42, x43, new_psMyInt2(x42, x43, x44))=new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x46, x47, x48) ==> new_takeWhile113(x40, x41, x42, x43, x44, MyTrue)_>=_new_takeWhile9(x40, x44, x42, x43, new_psMyInt2(x42, x43, x44))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt2(x42, x43, Main.Neg(Main.Succ(x45))))) *We consider the chain new_takeWhile113(x49, x50, x51, x52, x53, MyTrue) -> new_takeWhile9(x49, x53, x51, x52, new_psMyInt2(x51, x52, x53)), new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x49, x53, x51, x52, new_psMyInt2(x51, x52, x53))=new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x54, x55, x56) ==> new_takeWhile113(x49, x50, x51, x52, x53, MyTrue)_>=_new_takeWhile9(x49, x53, x51, x52, new_psMyInt2(x51, x52, x53))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt2(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile113(x57, x58, x59, x60, x61, MyTrue) -> new_takeWhile9(x57, x61, x59, x60, new_psMyInt2(x59, x60, x61)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x57, x61, x59, x60, new_psMyInt2(x59, x60, x61))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x63, x64, x65) ==> new_takeWhile113(x57, x58, x59, x60, x61, MyTrue)_>=_new_takeWhile9(x57, x61, x59, x60, new_psMyInt2(x59, x60, x61))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt2(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile113(x66, x67, x68, x69, x70, MyTrue) -> new_takeWhile9(x66, x70, x68, x69, new_psMyInt2(x68, x69, x70)), new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x66, x70, x68, x69, new_psMyInt2(x68, x69, x70))=new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x71, x72, x73) ==> new_takeWhile113(x66, x67, x68, x69, x70, MyTrue)_>=_new_takeWhile9(x66, x70, x68, x69, new_psMyInt2(x68, x69, x70))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt2(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile113(x74, x75, x76, x77, x78, MyTrue) -> new_takeWhile9(x74, x78, x76, x77, new_psMyInt2(x76, x77, x78)), new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x74, x78, x76, x77, new_psMyInt2(x76, x77, x78))=new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x80, x81, x82) ==> new_takeWhile113(x74, x75, x76, x77, x78, MyTrue)_>=_new_takeWhile9(x74, x78, x76, x77, new_psMyInt2(x76, x77, x78))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt2(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) *We consider the chain new_takeWhile113(x83, x84, x85, x86, x87, MyTrue) -> new_takeWhile9(x83, x87, x85, x86, new_psMyInt2(x85, x86, x87)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92, new_not12(x89, x88)) which results in the following constraint: (1) (new_takeWhile9(x83, x87, x85, x86, new_psMyInt2(x85, x86, x87))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x90, x91, x92) ==> new_takeWhile113(x83, x84, x85, x86, x87, MyTrue)_>=_new_takeWhile9(x83, x87, x85, x86, new_psMyInt2(x85, x86, x87))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt2(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) *We consider the chain new_takeWhile113(x93, x94, x95, x96, x97, MyTrue) -> new_takeWhile9(x93, x97, x95, x96, new_psMyInt2(x95, x96, x97)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x93, x97, x95, x96, new_psMyInt2(x95, x96, x97))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x98, x99, x100) ==> new_takeWhile113(x93, x94, x95, x96, x97, MyTrue)_>=_new_takeWhile9(x93, x97, x95, x96, new_psMyInt2(x95, x96, x97))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt2(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile113(x101, x102, x103, x104, x105, MyTrue) -> new_takeWhile9(x101, x105, x103, x104, new_psMyInt2(x103, x104, x105)), new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x101, x105, x103, x104, new_psMyInt2(x103, x104, x105))=new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x107, x108, x109) ==> new_takeWhile113(x101, x102, x103, x104, x105, MyTrue)_>=_new_takeWhile9(x101, x105, x103, x104, new_psMyInt2(x103, x104, x105))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt2(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile113(x110, x111, x112, x113, x114, MyTrue) -> new_takeWhile9(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114)), new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119, new_not12(x115, x116)) which results in the following constraint: (1) (new_takeWhile9(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114))=new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x117, x118, x119) ==> new_takeWhile113(x110, x111, x112, x113, x114, MyTrue)_>=_new_takeWhile9(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt2(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) *We consider the chain new_takeWhile113(x120, x121, x122, x123, x124, MyTrue) -> new_takeWhile9(x120, x124, x122, x123, new_psMyInt2(x122, x123, x124)), new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x120, x124, x122, x123, new_psMyInt2(x122, x123, x124))=new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x125, x126, x127) ==> new_takeWhile113(x120, x121, x122, x123, x124, MyTrue)_>=_new_takeWhile9(x120, x124, x122, x123, new_psMyInt2(x122, x123, x124))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt2(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile113(x128, x129, x130, x131, x132, MyTrue) -> new_takeWhile9(x128, x132, x130, x131, new_psMyInt2(x130, x131, x132)), new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136, MyTrue) which results in the following constraint: (1) (new_takeWhile9(x128, x132, x130, x131, new_psMyInt2(x130, x131, x132))=new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x134, x135, x136) ==> new_takeWhile113(x128, x129, x130, x131, x132, MyTrue)_>=_new_takeWhile9(x128, x132, x130, x131, new_psMyInt2(x130, x131, x132))) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt2(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) For Pair new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue), new_takeWhile113(x140, x141, x142, x143, x144, MyTrue) -> new_takeWhile9(x140, x144, x142, x143, new_psMyInt2(x142, x143, x144)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)=new_takeWhile113(x140, x141, x142, x143, x144, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) For Pair new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194) -> new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue), new_takeWhile113(x195, x196, x197, x198, x199, MyTrue) -> new_takeWhile9(x195, x199, x197, x198, new_psMyInt2(x197, x198, x199)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)=new_takeWhile113(x195, x196, x197, x198, x199, MyTrue) ==> new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) For Pair new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue), new_takeWhile113(x278, x279, x280, x281, x282, MyTrue) -> new_takeWhile9(x278, x282, x280, x281, new_psMyInt2(x280, x281, x282)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)=new_takeWhile113(x278, x279, x280, x281, x282, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) For Pair new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331) -> new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue), new_takeWhile113(x332, x333, x334, x335, x336, MyTrue) -> new_takeWhile9(x332, x336, x334, x335, new_psMyInt2(x334, x335, x336)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)=new_takeWhile113(x332, x333, x334, x335, x336, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) For Pair new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue), new_takeWhile113(x401, x402, x403, x404, x405, MyTrue) -> new_takeWhile9(x401, x405, x403, x404, new_psMyInt2(x403, x404, x405)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)=new_takeWhile113(x401, x402, x403, x404, x405, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue), new_takeWhile113(x469, x470, x471, x472, x473, MyTrue) -> new_takeWhile9(x469, x473, x471, x472, new_psMyInt2(x471, x472, x473)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)=new_takeWhile113(x469, x470, x471, x472, x473, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue), new_takeWhile113(x523, x524, x525, x526, x527, MyTrue) -> new_takeWhile9(x523, x527, x525, x526, new_psMyInt2(x525, x526, x527)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)=new_takeWhile113(x523, x524, x525, x526, x527, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue), new_takeWhile113(x591, x592, x593, x594, x595, MyTrue) -> new_takeWhile9(x591, x595, x593, x594, new_psMyInt2(x593, x594, x595)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)=new_takeWhile113(x591, x592, x593, x594, x595, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue), new_takeWhile113(x645, x646, x647, x648, x649, MyTrue) -> new_takeWhile9(x645, x649, x647, x648, new_psMyInt2(x647, x648, x649)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)=new_takeWhile113(x645, x646, x647, x648, x649, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710)), new_takeWhile113(x715, x716, x717, x718, x719, MyTrue) -> new_takeWhile9(x715, x719, x717, x718, new_psMyInt2(x717, x718, x719)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))=new_takeWhile113(x715, x716, x717, x718, x719, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not12(x711, x710)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x710)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x711)))), x712, x713, x714, new_not12(x711, x710))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x711, x710)=MyTrue which results in the following new constraints: (3) (new_not10=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) (4) (new_not11=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) (5) (new_not12(x1126, x1125)=MyTrue & (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) (6) (new_not8=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (8) (new_not5=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1127,x1128,x1129:new_not12(x1126, x1125)=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x1127, x1128, x1129, new_not12(x1126, x1125))) with sigma = [x1127 / x712, x1128 / x713, x1129 / x714] which results in the following new constraint: (9) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (10) (new_not4=MyTrue ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue), new_takeWhile113(x798, x799, x800, x801, x802, MyTrue) -> new_takeWhile9(x798, x802, x800, x801, new_psMyInt2(x800, x801, x802)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)=new_takeWhile113(x798, x799, x800, x801, x802, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) For Pair new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue), new_takeWhile113(x852, x853, x854, x855, x856, MyTrue) -> new_takeWhile9(x852, x856, x854, x855, new_psMyInt2(x854, x855, x856)) which results in the following constraint: (1) (new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)=new_takeWhile113(x852, x853, x854, x855, x856, MyTrue) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918)), new_takeWhile113(x922, x923, x924, x925, x926, MyTrue) -> new_takeWhile9(x922, x926, x924, x925, new_psMyInt2(x924, x925, x926)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))=new_takeWhile113(x922, x923, x924, x925, x926, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not12(x917, x918)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x917)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x918)))), x919, x920, x921, new_not12(x917, x918))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not12(x917, x918)=MyTrue which results in the following new constraints: (3) (new_not10=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) (4) (new_not11=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) (5) (new_not12(x1133, x1132)=MyTrue & (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) (6) (new_not8=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not10=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (8) (new_not5=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x1134,x1135,x1136:new_not12(x1133, x1132)=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x1134, x1135, x1136, new_not12(x1133, x1132))) with sigma = [x1134 / x919, x1135 / x920, x1136 / x921] which results in the following new constraint: (9) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (10) (new_not4=MyTrue ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue), new_takeWhile113(x1005, x1006, x1007, x1008, x1009, MyTrue) -> new_takeWhile9(x1005, x1009, x1007, x1008, new_psMyInt2(x1007, x1008, x1009)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)=new_takeWhile113(x1005, x1006, x1007, x1008, x1009, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) For Pair new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue), new_takeWhile113(x1059, x1060, x1061, x1062, x1063, MyTrue) -> new_takeWhile9(x1059, x1063, x1061, x1062, new_psMyInt2(x1061, x1062, x1063)) which results in the following constraint: (1) (new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)=new_takeWhile113(x1059, x1060, x1061, x1062, x1063, MyTrue) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) *(new_takeWhile113(Main.Neg(Main.Zero), x6, x7, x8, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x7, x8, new_psMyInt2(x7, x8, Main.Pos(Main.Zero)))) *(new_takeWhile113(Main.Pos(x18), x14, x15, x16, Main.Neg(Main.Succ(x19)), MyTrue)_>=_new_takeWhile9(Main.Pos(x18), Main.Neg(Main.Succ(x19)), x15, x16, new_psMyInt2(x15, x16, Main.Neg(Main.Succ(x19))))) *(new_takeWhile113(Main.Pos(Main.Zero), x24, x25, x26, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x25, x26, new_psMyInt2(x25, x26, Main.Pos(Main.Zero)))) *(new_takeWhile113(Main.Pos(Main.Succ(x36)), x32, x33, x34, Main.Pos(Main.Zero), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(x36)), Main.Pos(Main.Zero), x33, x34, new_psMyInt2(x33, x34, Main.Pos(Main.Zero)))) *(new_takeWhile113(Main.Neg(Main.Zero), x41, x42, x43, Main.Neg(Main.Succ(x45)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x45)), x42, x43, new_psMyInt2(x42, x43, Main.Neg(Main.Succ(x45))))) *(new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), x50, x51, x52, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x51, x52, new_psMyInt2(x51, x52, Main.Pos(Main.Succ(Main.Zero))))) *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x62))), x58, x59, x60, Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x62))), Main.Pos(Main.Succ(Main.Zero)), x59, x60, new_psMyInt2(x59, x60, Main.Pos(Main.Succ(Main.Zero))))) *(new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x67, x68, x69, Main.Neg(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x68, x69, new_psMyInt2(x68, x69, Main.Neg(Main.Succ(Main.Zero))))) *(new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), x75, x76, x77, Main.Neg(Main.Succ(Main.Succ(x79))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x79))), x76, x77, new_psMyInt2(x76, x77, Main.Neg(Main.Succ(Main.Succ(x79)))))) *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), x84, x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x88)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89)))), x85, x86, new_psMyInt2(x85, x86, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x89))))))) *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x94, x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x95, x96, new_psMyInt2(x95, x96, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), x102, x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x106)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x103, x104, new_psMyInt2(x103, x104, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), x111, x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x115)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116)))), x112, x113, new_psMyInt2(x112, x113, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x116))))))) *(new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x121, x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x122, x123, new_psMyInt2(x122, x123, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x129, x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), MyTrue)_>=_new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133)))), x130, x131, new_psMyInt2(x130, x131, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x133))))))) *new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x137, x138, x139, MyTrue)) *new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194)_>=_new_takeWhile113(Main.Pos(x190), Main.Neg(Main.Succ(x191)), x192, x193, x194, MyTrue)) *new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277)_>=_new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x275, x276, x277, MyTrue)) *new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331)_>=_new_takeWhile113(Main.Pos(Main.Succ(x328)), Main.Pos(Main.Zero), x329, x330, x331, MyTrue)) *new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400)_>=_new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x397)), x398, x399, x400, MyTrue)) *new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x466, x467, x468, MyTrue)) *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x519))), Main.Pos(Main.Succ(Main.Zero)), x520, x521, x522, MyTrue)) *new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x588, x589, x590, MyTrue)) *new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x641))), x642, x643, x644, MyTrue)) *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1125)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1126)))), x712, x713, x714, new_not12(x1126, x1125)) ==> new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1125))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1126))))), x712, x713, x714, new_not12(Main.Succ(x1126), Main.Succ(x1125)))) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Zero))) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1124))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x712, x713, x714, new_not12(Main.Zero, Main.Succ(x1124)))) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1130))))), x712, x713, x714, new_not12(Main.Succ(x1130), Main.Zero))) *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x795, x796, x797, MyTrue)) *new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851)_>=_new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x848)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x849, x850, x851, MyTrue)) *new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1133)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1132)))), x919, x920, x921, new_not12(x1133, x1132)) ==> new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1133))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1132))))), x919, x920, x921, new_not12(Main.Succ(x1133), Main.Succ(x1132)))) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Zero, Main.Zero))) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1131))))), x919, x920, x921, new_not12(Main.Zero, Main.Succ(x1131)))) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1137))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x919, x920, x921, new_not12(Main.Succ(x1137), Main.Zero))) *new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x1002, x1003, x1004, MyTrue)) *new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) *(new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058)_>=_new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1055)))), x1056, x1057, x1058, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile113(wy735, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile9(wy735, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile9(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4) -> new_takeWhile113(Main.Pos(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Zero), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not12(x0, x1)) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile9(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4) -> new_takeWhile113(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not12(Main.Zero, Main.Succ(x0)) new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (245) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Pos(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not3) new_takeWhile10(Main.Pos(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Zero, Main.Succ(wy75300))) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not3) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (246) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes. ---------------------------------------- (247) Complex Obligation (AND) ---------------------------------------- (248) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (249) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (250) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (251) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (252) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (253) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (254) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (255) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (256) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (257) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Pos(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75600), wy7530)) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)),new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0))) ---------------------------------------- (258) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (259) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (260) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (261) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (262) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (263) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_takeWhile10(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = 1 + x_1 POL(Main.Pos(x_1)) = 1 POL(Main.Succ(x_1)) = 0 POL(Main.Zero) = 1 POL(MyFalse) = 1 POL(MyTrue) = 0 POL(new_not0(x_1, x_2)) = x_2 POL(new_not1) = 1 POL(new_not2) = 1 POL(new_not3) = 1 POL(new_not4) = 1 POL(new_not5) = 1 POL(new_primMinusNat0(x_1, x_2)) = 1 POL(new_primPlusInt0(x_1, x_2, x_3)) = 1 POL(new_primPlusInt1(x_1, x_2)) = 1 POL(new_primPlusInt2(x_1, x_2)) = 1 + x_1 POL(new_primPlusNat0(x_1, x_2)) = x_1 POL(new_psMyInt(x_1, x_2, x_3)) = 1 POL(new_takeWhile(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 POL(new_takeWhile1(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_3 + x_4 + x_5 POL(new_takeWhile10(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) ---------------------------------------- (264) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (265) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (266) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (267) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: *We consider the chain new_takeWhile1(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile(x10, x11, x12, x13, x14) -> new_takeWhile10(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: (1) (new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile(x10, x11, x12, x13, x14) ==> new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) For Pair new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) the following chains were created: *We consider the chain new_takeWhile(x35, x36, x37, x38, x39) -> new_takeWhile10(Main.Pos(x35), x36, x37, x38, x39, x36), new_takeWhile10(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) -> new_takeWhile1(x40, Main.Pos(Main.Succ(x41)), x42, x43, x44, new_not0(Main.Succ(x41), x40)) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x35), x36, x37, x38, x39, x36)=new_takeWhile10(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) ==> new_takeWhile(x35, x36, x37, x38, x39)_>=_new_takeWhile10(Main.Pos(x35), x36, x37, x38, x39, x36)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile10(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) *We consider the chain new_takeWhile(x45, x46, x47, x48, x49) -> new_takeWhile10(Main.Pos(x45), x46, x47, x48, x49, x46), new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x50, x51, x52, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x45), x46, x47, x48, x49, x46)=new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) ==> new_takeWhile(x45, x46, x47, x48, x49)_>=_new_takeWhile10(Main.Pos(x45), x46, x47, x48, x49, x46)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) For Pair new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54))) -> new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53)), new_takeWhile1(x58, x59, x60, x61, x62, MyTrue) -> new_takeWhile(x58, x62, x60, x61, new_psMyInt(x60, x61, x62)) which results in the following constraint: (1) (new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))=new_takeWhile1(x58, x59, x60, x61, x62, MyTrue) ==> new_takeWhile10(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Succ(x54)=x95 & new_not0(x95, x53)=MyTrue ==> new_takeWhile10(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x95, x53)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue & Main.Succ(x54)=Main.Succ(x96) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) (4) (new_not3=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile10(Main.Pos(Main.Succ(x97)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Succ(x97), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x97)))) (5) (new_not0(x99, x98)=MyTrue & Main.Succ(x54)=Main.Succ(x99) & (\/x100,x101,x102,x103:new_not0(x99, x98)=MyTrue & Main.Succ(x100)=x99 ==> new_takeWhile10(Main.Pos(x98), Main.Pos(Main.Succ(x100)), x101, x102, x103, Main.Pos(Main.Succ(x100)))_>=_new_takeWhile1(x98, Main.Pos(Main.Succ(x100)), x101, x102, x103, new_not0(Main.Succ(x100), x98))) ==> new_takeWhile10(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Succ(x98), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x98)))) (6) (new_not2=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (7) (new_not1=MyTrue ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_not0(x99, x98)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x99)), x55, x56, x57, Main.Pos(Main.Succ(x99)))_>=_new_takeWhile1(Main.Succ(x98), Main.Pos(Main.Succ(x99)), x55, x56, x57, new_not0(Main.Succ(x99), Main.Succ(x98)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (9) (new_not5=MyTrue ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (10) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x99, x98)=MyTrue which results in the following new constraints: (11) (new_not1=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) (12) (new_not3=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) (13) (new_not0(x107, x106)=MyTrue & (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile1(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) (14) (new_not2=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) We simplified constraint (11) using rule (IV) which results in the following new constraint: (15) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (16) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) with sigma = [x108 / x55, x109 / x56, x110 / x57] which results in the following new constraint: (17) (new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile1(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) We simplified constraint (14) using rule (IV) which results in the following new constraint: (18) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) For Pair new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue), new_takeWhile1(x81, x82, x83, x84, x85, MyTrue) -> new_takeWhile(x81, x85, x83, x84, new_psMyInt(x83, x84, x85)) which results in the following constraint: (1) (new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)=new_takeWhile1(x81, x82, x83, x84, x85, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) *(new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) *new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) *(new_takeWhile(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile10(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) *(new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) *new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) *(new_takeWhile10(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile1(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile1(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) *new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (268) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (269) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile1(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1))) ---------------------------------------- (270) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (271) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5)) ---------------------------------------- (272) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (273) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue)) ---------------------------------------- (274) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (275) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) ---------------------------------------- (276) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (277) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (278) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (279) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) ---------------------------------------- (280) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (281) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (282) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (283) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) ---------------------------------------- (284) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (285) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (286) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (287) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) ---------------------------------------- (288) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (289) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (290) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (291) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) ---------------------------------------- (292) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (293) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (294) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (295) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) ---------------------------------------- (296) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (297) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (298) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (299) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) ---------------------------------------- (300) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (301) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (302) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (303) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5)) ---------------------------------------- (304) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (305) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) ---------------------------------------- (306) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (307) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue)) ---------------------------------------- (308) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (309) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) ---------------------------------------- (310) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (311) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (312) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (313) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: *We consider the chain new_takeWhile1(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile(x10, x11, x12, x13, x14) -> new_takeWhile10(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: (1) (new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile(x10, x11, x12, x13, x14) ==> new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) For Pair new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) the following chains were created: *We consider the chain new_takeWhile(x70, x71, x72, x73, x74) -> new_takeWhile10(Main.Pos(x70), x71, x72, x73, x74, x71), new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x75, x76, x77, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x70), x71, x72, x73, x74, x71)=new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) ==> new_takeWhile(x70, x71, x72, x73, x74)_>=_new_takeWhile10(Main.Pos(x70), x71, x72, x73, x74, x71)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile(x78, x79, x80, x81, x82) -> new_takeWhile10(Main.Pos(x78), x79, x80, x81, x82, x79), new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x83)), x84, x85, x86, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x78), x79, x80, x81, x82, x79)=new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) ==> new_takeWhile(x78, x79, x80, x81, x82)_>=_new_takeWhile10(Main.Pos(x78), x79, x80, x81, x82, x79)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) *We consider the chain new_takeWhile(x87, x88, x89, x90, x91) -> new_takeWhile10(Main.Pos(x87), x88, x89, x90, x91, x88), new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x87), x88, x89, x90, x91, x88)=new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) ==> new_takeWhile(x87, x88, x89, x90, x91)_>=_new_takeWhile10(Main.Pos(x87), x88, x89, x90, x91, x88)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) *We consider the chain new_takeWhile(x96, x97, x98, x99, x100) -> new_takeWhile10(Main.Pos(x96), x97, x98, x99, x100, x97), new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x96), x97, x98, x99, x100, x97)=new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) ==> new_takeWhile(x96, x97, x98, x99, x100)_>=_new_takeWhile10(Main.Pos(x96), x97, x98, x99, x100, x97)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) *We consider the chain new_takeWhile(x104, x105, x106, x107, x108) -> new_takeWhile10(Main.Pos(x104), x105, x106, x107, x108, x105), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x104), x105, x106, x107, x108, x105)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) ==> new_takeWhile(x104, x105, x106, x107, x108)_>=_new_takeWhile10(Main.Pos(x104), x105, x106, x107, x108, x105)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) *We consider the chain new_takeWhile(x113, x114, x115, x116, x117) -> new_takeWhile10(Main.Pos(x113), x114, x115, x116, x117, x114), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x113), x114, x115, x116, x117, x114)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile(x113, x114, x115, x116, x117)_>=_new_takeWhile10(Main.Pos(x113), x114, x115, x116, x117, x114)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile(x121, x122, x123, x124, x125) -> new_takeWhile10(Main.Pos(x121), x122, x123, x124, x125, x122), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, new_not0(x127, x126)) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x121), x122, x123, x124, x125, x122)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) ==> new_takeWhile(x121, x122, x123, x124, x125)_>=_new_takeWhile10(Main.Pos(x121), x122, x123, x124, x125, x122)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) *We consider the chain new_takeWhile(x131, x132, x133, x134, x135) -> new_takeWhile10(Main.Pos(x131), x132, x133, x134, x135, x132), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x131), x132, x133, x134, x135, x132)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) ==> new_takeWhile(x131, x132, x133, x134, x135)_>=_new_takeWhile10(Main.Pos(x131), x132, x133, x134, x135, x132)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) *We consider the chain new_takeWhile(x140, x141, x142, x143, x144) -> new_takeWhile10(Main.Pos(x140), x141, x142, x143, x144, x141), new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Pos(x140), x141, x142, x143, x144, x141)=new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile(x140, x141, x142, x143, x144)_>=_new_takeWhile10(Main.Pos(x140), x141, x142, x143, x144, x141)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) For Pair new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue), new_takeWhile1(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile(x151, x155, x153, x154, new_psMyInt(x153, x154, x155)) which results in the following constraint: (1) (new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)=new_takeWhile1(x151, x152, x153, x154, x155, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue), new_takeWhile1(x190, x191, x192, x193, x194, MyTrue) -> new_takeWhile(x190, x194, x192, x193, new_psMyInt(x192, x193, x194)) which results in the following constraint: (1) (new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)=new_takeWhile1(x190, x191, x192, x193, x194, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue), new_takeWhile1(x239, x240, x241, x242, x243, MyTrue) -> new_takeWhile(x239, x243, x241, x242, new_psMyInt(x241, x242, x243)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)=new_takeWhile1(x239, x240, x241, x242, x243, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue), new_takeWhile1(x287, x288, x289, x290, x291, MyTrue) -> new_takeWhile(x287, x291, x289, x290, new_psMyInt(x289, x290, x291)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)=new_takeWhile1(x287, x288, x289, x290, x291, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue), new_takeWhile1(x326, x327, x328, x329, x330, MyTrue) -> new_takeWhile(x326, x330, x328, x329, new_psMyInt(x328, x329, x330)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)=new_takeWhile1(x326, x327, x328, x329, x330, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue), new_takeWhile1(x374, x375, x376, x377, x378, MyTrue) -> new_takeWhile(x374, x378, x376, x377, new_psMyInt(x376, x377, x378)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)=new_takeWhile1(x374, x375, x376, x377, x378, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409)), new_takeWhile1(x414, x415, x416, x417, x418, MyTrue) -> new_takeWhile(x414, x418, x416, x417, new_psMyInt(x416, x417, x418)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))=new_takeWhile1(x414, x415, x416, x417, x418, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not0(x410, x409)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x410, x409)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) (4) (new_not3=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) (5) (new_not0(x559, x558)=MyTrue & (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) (6) (new_not2=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (8) (new_not4=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) with sigma = [x560 / x411, x561 / x412, x562 / x413] which results in the following new constraint: (9) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue), new_takeWhile1(x473, x474, x475, x476, x477, MyTrue) -> new_takeWhile(x473, x477, x475, x476, new_psMyInt(x475, x476, x477)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)=new_takeWhile1(x473, x474, x475, x476, x477, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) For Pair new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue), new_takeWhile1(x521, x522, x523, x524, x525, MyTrue) -> new_takeWhile(x521, x525, x523, x524, new_psMyInt(x523, x524, x525)) which results in the following constraint: (1) (new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)=new_takeWhile1(x521, x522, x523, x524, x525, MyTrue) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) *(new_takeWhile1(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) *new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) *(new_takeWhile(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) *(new_takeWhile(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) *(new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) *(new_takeWhile(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) *(new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) *(new_takeWhile(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) *(new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) *(new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) *(new_takeWhile(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) *new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) *new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) *new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) *new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (314) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile1(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile(wy7530, wy780, wy784, wy750, wy847) -> new_takeWhile10(Main.Pos(wy7530), wy780, wy784, wy750, wy847, wy780) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile1(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile1(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile1(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (315) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not1) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (316) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (317) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (318) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (319) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (320) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (321) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (322) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not0(Main.Succ(wy75300), Main.Zero)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1)) ---------------------------------------- (323) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (324) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (325) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (326) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (329) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (330) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (331) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (332) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5)) ---------------------------------------- (333) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (334) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (335) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (336) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue)) ---------------------------------------- (337) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (338) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Neg(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, new_not0(wy7530, Main.Succ(wy75600))) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))),new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5)))) ---------------------------------------- (339) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (340) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(wy7530), wy749, wy784, wy750, wy780, Main.Pos(Main.Succ(wy75600))) -> new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue)) ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (343) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (344) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (345) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (346) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Zero), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (347) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (348) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(wy75300)), wy749, wy784, wy750, wy780, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(wy75300), wy749, wy784, wy750, wy780, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (349) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (350) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 0 POL(Main.Zero) = 1 POL(MyFalse) = 0 POL(MyTrue) = 0 POL(new_not0(x_1, x_2)) = 0 POL(new_not1) = 0 POL(new_not2) = 0 POL(new_not3) = 0 POL(new_not4) = 0 POL(new_not5) = 0 POL(new_primMinusNat0(x_1, x_2)) = 0 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 POL(new_primPlusInt1(x_1, x_2)) = 0 POL(new_primPlusInt2(x_1, x_2)) = x_1 POL(new_primPlusNat0(x_1, x_2)) = x_1 POL(new_psMyInt(x_1, x_2, x_3)) = 0 POL(new_takeWhile0(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 POL(new_takeWhile10(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 POL(new_takeWhile11(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) ---------------------------------------- (351) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (352) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (353) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (354) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: *We consider the chain new_takeWhile11(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9)), new_takeWhile0(x10, x11, x12, x13, x14) -> new_takeWhile10(Main.Neg(x10), x11, x12, x13, x14, x11) which results in the following constraint: (1) (new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))=new_takeWhile0(x10, x11, x12, x13, x14) ==> new_takeWhile11(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile11(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) For Pair new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) the following chains were created: *We consider the chain new_takeWhile0(x45, x46, x47, x48, x49) -> new_takeWhile10(Main.Neg(x45), x46, x47, x48, x49, x46), new_takeWhile10(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) -> new_takeWhile11(x50, Main.Neg(Main.Succ(x51)), x52, x53, x54, new_not0(x50, Main.Succ(x51))) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x45), x46, x47, x48, x49, x46)=new_takeWhile10(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) ==> new_takeWhile0(x45, x46, x47, x48, x49)_>=_new_takeWhile10(Main.Neg(x45), x46, x47, x48, x49, x46)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile10(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) *We consider the chain new_takeWhile0(x55, x56, x57, x58, x59) -> new_takeWhile10(Main.Neg(x55), x56, x57, x58, x59, x56), new_takeWhile10(Main.Neg(x60), Main.Pos(Main.Succ(x61)), x62, x63, x64, Main.Pos(Main.Succ(x61))) -> new_takeWhile11(x60, Main.Pos(Main.Succ(x61)), x62, x63, x64, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x55), x56, x57, x58, x59, x56)=new_takeWhile10(Main.Neg(x60), Main.Pos(Main.Succ(x61)), x62, x63, x64, Main.Pos(Main.Succ(x61))) ==> new_takeWhile0(x55, x56, x57, x58, x59)_>=_new_takeWhile10(Main.Neg(x55), x56, x57, x58, x59, x56)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(x55, Main.Pos(Main.Succ(x61)), x57, x58, x59)_>=_new_takeWhile10(Main.Neg(x55), Main.Pos(Main.Succ(x61)), x57, x58, x59, Main.Pos(Main.Succ(x61)))) *We consider the chain new_takeWhile0(x65, x66, x67, x68, x69) -> new_takeWhile10(Main.Neg(x65), x66, x67, x68, x69, x66), new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x70, x71, x72, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x70, x71, x72, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x65), x66, x67, x68, x69, x66)=new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x70, x71, x72, Main.Pos(Main.Zero)) ==> new_takeWhile0(x65, x66, x67, x68, x69)_>=_new_takeWhile10(Main.Neg(x65), x66, x67, x68, x69, x66)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x67, x68, x69)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x67, x68, x69, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile0(x73, x74, x75, x76, x77) -> new_takeWhile10(Main.Neg(x73), x74, x75, x76, x77, x74), new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x78), Main.Pos(Main.Zero), x79, x80, x81, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x73), x74, x75, x76, x77, x74)=new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) ==> new_takeWhile0(x73, x74, x75, x76, x77)_>=_new_takeWhile10(Main.Neg(x73), x74, x75, x76, x77, x74)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(x78), Main.Pos(Main.Zero), x75, x76, x77)_>=_new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero))) For Pair new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83))) -> new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83))), new_takeWhile11(x87, x88, x89, x90, x91, MyTrue) -> new_takeWhile0(x87, x91, x89, x90, new_psMyInt(x89, x90, x91)) which results in the following constraint: (1) (new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))=new_takeWhile11(x87, x88, x89, x90, x91, MyTrue) ==> new_takeWhile10(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Succ(x83)=x204 & new_not0(x82, x204)=MyTrue ==> new_takeWhile10(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x82, x204)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile10(Main.Neg(Main.Succ(x205)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Succ(x205), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x205), Main.Succ(x83)))) (4) (new_not3=MyTrue & Main.Succ(x83)=Main.Succ(x206) ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) (5) (new_not0(x208, x207)=MyTrue & Main.Succ(x83)=Main.Succ(x207) & (\/x209,x210,x211,x212:new_not0(x208, x207)=MyTrue & Main.Succ(x209)=x207 ==> new_takeWhile10(Main.Neg(x208), Main.Neg(Main.Succ(x209)), x210, x211, x212, Main.Neg(Main.Succ(x209)))_>=_new_takeWhile11(x208, Main.Neg(Main.Succ(x209)), x210, x211, x212, new_not0(x208, Main.Succ(x209)))) ==> new_takeWhile10(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Succ(x208), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x83)))) (6) (new_not2=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (7) (new_not3=MyTrue ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_not0(x208, x207)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x207)), x84, x85, x86, Main.Neg(Main.Succ(x207)))_>=_new_takeWhile11(Main.Succ(x208), Main.Neg(Main.Succ(x207)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x207)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (9) (new_not4=MyTrue ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (10) (new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x208, x207)=MyTrue which results in the following new constraints: (11) (new_not1=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) (12) (new_not3=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) (13) (new_not0(x216, x215)=MyTrue & (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile11(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) (14) (new_not2=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) We simplified constraint (11) using rule (IV) which results in the following new constraint: (15) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (16) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) with sigma = [x217 / x84, x218 / x85, x219 / x86] which results in the following new constraint: (17) (new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile11(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) We simplified constraint (14) using rule (IV) which results in the following new constraint: (18) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) For Pair new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118))) -> new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue), new_takeWhile11(x122, x123, x124, x125, x126, MyTrue) -> new_takeWhile0(x122, x126, x124, x125, new_psMyInt(x124, x125, x126)) which results in the following constraint: (1) (new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)=new_takeWhile11(x122, x123, x124, x125, x126, MyTrue) ==> new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118)))_>=_new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118)))_>=_new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue), new_takeWhile11(x155, x156, x157, x158, x159, MyTrue) -> new_takeWhile0(x155, x159, x157, x158, new_psMyInt(x157, x158, x159)) which results in the following constraint: (1) (new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)=new_takeWhile11(x155, x156, x157, x158, x159, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue), new_takeWhile11(x179, x180, x181, x182, x183, MyTrue) -> new_takeWhile0(x179, x183, x181, x182, new_psMyInt(x181, x182, x183)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)=new_takeWhile11(x179, x180, x181, x182, x183, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) *(new_takeWhile11(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile0(x5, x9, x7, x8, new_psMyInt(x7, x8, x9))) *new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) *(new_takeWhile0(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile10(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) *(new_takeWhile0(x55, Main.Pos(Main.Succ(x61)), x57, x58, x59)_>=_new_takeWhile10(Main.Neg(x55), Main.Pos(Main.Succ(x61)), x57, x58, x59, Main.Pos(Main.Succ(x61)))) *(new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x67, x68, x69)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x67, x68, x69, Main.Pos(Main.Zero))) *(new_takeWhile0(Main.Succ(x78), Main.Pos(Main.Zero), x75, x76, x77)_>=_new_takeWhile10(Main.Neg(Main.Succ(x78)), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero))) *new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) *(new_takeWhile10(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile11(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile11(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) *(new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) *new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Neg(x117), Main.Pos(Main.Succ(x118)), x119, x120, x121, Main.Pos(Main.Succ(x118)))_>=_new_takeWhile11(x117, Main.Pos(Main.Succ(x118)), x119, x120, x121, MyTrue)) *new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x152, x153, x154, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x152, x153, x154, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(x175)), Main.Pos(Main.Zero), x176, x177, x178, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x175), Main.Pos(Main.Zero), x176, x177, x178, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (355) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (356) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1))) ---------------------------------------- (357) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile11(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (358) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (359) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (360) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile11(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) ---------------------------------------- (361) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (362) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (363) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (364) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (365) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (366) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (367) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (368) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (369) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (370) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (371) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (372) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) ---------------------------------------- (373) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (374) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (375) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (376) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (377) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (378) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (379) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (380) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (381) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (382) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (383) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (384) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1)) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3)) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) ---------------------------------------- (385) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (386) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (387) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (388) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) ---------------------------------------- (389) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (390) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) ---------------------------------------- (391) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) ---------------------------------------- (393) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (394) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) ---------------------------------------- (395) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (397) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (398) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) the following chains were created: *We consider the chain new_takeWhile0(x5, x6, x7, x8, x9) -> new_takeWhile10(Main.Neg(x5), x6, x7, x8, x9, x6), new_takeWhile10(Main.Neg(x10), Main.Pos(Main.Succ(x11)), x12, x13, x14, Main.Pos(Main.Succ(x11))) -> new_takeWhile11(x10, Main.Pos(Main.Succ(x11)), x12, x13, x14, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x5), x6, x7, x8, x9, x6)=new_takeWhile10(Main.Neg(x10), Main.Pos(Main.Succ(x11)), x12, x13, x14, Main.Pos(Main.Succ(x11))) ==> new_takeWhile0(x5, x6, x7, x8, x9)_>=_new_takeWhile10(Main.Neg(x5), x6, x7, x8, x9, x6)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(x5, Main.Pos(Main.Succ(x11)), x7, x8, x9)_>=_new_takeWhile10(Main.Neg(x5), Main.Pos(Main.Succ(x11)), x7, x8, x9, Main.Pos(Main.Succ(x11)))) *We consider the chain new_takeWhile0(x20, x21, x22, x23, x24) -> new_takeWhile10(Main.Neg(x20), x21, x22, x23, x24, x21), new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x25, x26, x27, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x25, x26, x27, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x20), x21, x22, x23, x24, x21)=new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x25, x26, x27, Main.Pos(Main.Zero)) ==> new_takeWhile0(x20, x21, x22, x23, x24)_>=_new_takeWhile10(Main.Neg(x20), x21, x22, x23, x24, x21)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x22, x23, x24)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x22, x23, x24, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile0(x28, x29, x30, x31, x32) -> new_takeWhile10(Main.Neg(x28), x29, x30, x31, x32, x29), new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x33), Main.Pos(Main.Zero), x34, x35, x36, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x28), x29, x30, x31, x32, x29)=new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) ==> new_takeWhile0(x28, x29, x30, x31, x32)_>=_new_takeWhile10(Main.Neg(x28), x29, x30, x31, x32, x29)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(x33), Main.Pos(Main.Zero), x30, x31, x32)_>=_new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x30, x31, x32, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile0(x37, x38, x39, x40, x41) -> new_takeWhile10(Main.Neg(x37), x38, x39, x40, x41, x38), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x37), x38, x39, x40, x41, x38)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile0(x37, x38, x39, x40, x41)_>=_new_takeWhile10(Main.Neg(x37), x38, x39, x40, x41, x38)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) *We consider the chain new_takeWhile0(x46, x47, x48, x49, x50) -> new_takeWhile10(Main.Neg(x46), x47, x48, x49, x50, x47), new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x46), x47, x48, x49, x50, x47)=new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile0(x46, x47, x48, x49, x50)_>=_new_takeWhile10(Main.Neg(x46), x47, x48, x49, x50, x47)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) *We consider the chain new_takeWhile0(x54, x55, x56, x57, x58) -> new_takeWhile10(Main.Neg(x54), x55, x56, x57, x58, x55), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x54), x55, x56, x57, x58, x55)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile0(x54, x55, x56, x57, x58)_>=_new_takeWhile10(Main.Neg(x54), x55, x56, x57, x58, x55)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile0(x63, x64, x65, x66, x67) -> new_takeWhile10(Main.Neg(x63), x64, x65, x66, x67, x64), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x63), x64, x65, x66, x67, x64)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile0(x63, x64, x65, x66, x67)_>=_new_takeWhile10(Main.Neg(x63), x64, x65, x66, x67, x64)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile0(x71, x72, x73, x74, x75) -> new_takeWhile10(Main.Neg(x71), x72, x73, x74, x75, x72), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, new_not0(x76, x77)) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x71), x72, x73, x74, x75, x72)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) ==> new_takeWhile0(x71, x72, x73, x74, x75)_>=_new_takeWhile10(Main.Neg(x71), x72, x73, x74, x75, x72)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) *We consider the chain new_takeWhile0(x81, x82, x83, x84, x85) -> new_takeWhile10(Main.Neg(x81), x82, x83, x84, x85, x82), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x81), x82, x83, x84, x85, x82)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile0(x81, x82, x83, x84, x85)_>=_new_takeWhile10(Main.Neg(x81), x82, x83, x84, x85, x82)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile0(x90, x91, x92, x93, x94) -> new_takeWhile10(Main.Neg(x90), x91, x92, x93, x94, x91), new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, MyTrue) which results in the following constraint: (1) (new_takeWhile10(Main.Neg(x90), x91, x92, x93, x94, x91)=new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile0(x90, x91, x92, x93, x94)_>=_new_takeWhile10(Main.Neg(x90), x91, x92, x93, x94, x91)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) For Pair new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109))) -> new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue), new_takeWhile11(x113, x114, x115, x116, x117, MyTrue) -> new_takeWhile0(x113, x117, x115, x116, new_psMyInt(x115, x116, x117)) which results in the following constraint: (1) (new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)=new_takeWhile11(x113, x114, x115, x116, x117, MyTrue) ==> new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109)))_>=_new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109)))_>=_new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)) For Pair new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) the following chains were created: *We consider the chain new_takeWhile11(x163, x164, x165, x166, x167, MyTrue) -> new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167)), new_takeWhile0(x168, x169, x170, x171, x172) -> new_takeWhile10(Main.Neg(x168), x169, x170, x171, x172, x169) which results in the following constraint: (1) (new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))=new_takeWhile0(x168, x169, x170, x171, x172) ==> new_takeWhile11(x163, x164, x165, x166, x167, MyTrue)_>=_new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile11(x163, x164, x165, x166, x167, MyTrue)_>=_new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))) For Pair new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue), new_takeWhile11(x237, x238, x239, x240, x241, MyTrue) -> new_takeWhile0(x237, x241, x239, x240, new_psMyInt(x239, x240, x241)) which results in the following constraint: (1) (new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)=new_takeWhile11(x237, x238, x239, x240, x241, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue), new_takeWhile11(x281, x282, x283, x284, x285, MyTrue) -> new_takeWhile0(x281, x285, x283, x284, new_psMyInt(x283, x284, x285)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)=new_takeWhile11(x281, x282, x283, x284, x285, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue), new_takeWhile11(x334, x335, x336, x337, x338, MyTrue) -> new_takeWhile0(x334, x338, x336, x337, new_psMyInt(x336, x337, x338)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)=new_takeWhile11(x334, x335, x336, x337, x338, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue), new_takeWhile11(x384, x385, x386, x387, x388, MyTrue) -> new_takeWhile0(x384, x388, x386, x387, new_psMyInt(x386, x387, x388)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)=new_takeWhile11(x384, x385, x386, x387, x388, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue), new_takeWhile11(x428, x429, x430, x431, x432, MyTrue) -> new_takeWhile0(x428, x432, x430, x431, new_psMyInt(x430, x431, x432)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)=new_takeWhile11(x428, x429, x430, x431, x432, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue), new_takeWhile11(x478, x479, x480, x481, x482, MyTrue) -> new_takeWhile0(x478, x482, x480, x481, new_psMyInt(x480, x481, x482)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)=new_takeWhile11(x478, x479, x480, x481, x482, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521)), new_takeWhile11(x525, x526, x527, x528, x529, MyTrue) -> new_takeWhile0(x525, x529, x527, x528, new_psMyInt(x527, x528, x529)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))=new_takeWhile11(x525, x526, x527, x528, x529, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not0(x520, x521)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x520, x521)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) (4) (new_not3=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) (5) (new_not0(x672, x671)=MyTrue & (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) (6) (new_not2=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (8) (new_not4=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) with sigma = [x673 / x522, x674 / x523, x675 / x524] which results in the following new constraint: (9) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue), new_takeWhile11(x587, x588, x589, x590, x591, MyTrue) -> new_takeWhile0(x587, x591, x589, x590, new_psMyInt(x589, x590, x591)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)=new_takeWhile11(x587, x588, x589, x590, x591, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) For Pair new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue), new_takeWhile11(x637, x638, x639, x640, x641, MyTrue) -> new_takeWhile0(x637, x641, x639, x640, new_psMyInt(x639, x640, x641)) which results in the following constraint: (1) (new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)=new_takeWhile11(x637, x638, x639, x640, x641, MyTrue) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) *(new_takeWhile0(x5, Main.Pos(Main.Succ(x11)), x7, x8, x9)_>=_new_takeWhile10(Main.Neg(x5), Main.Pos(Main.Succ(x11)), x7, x8, x9, Main.Pos(Main.Succ(x11)))) *(new_takeWhile0(Main.Zero, Main.Pos(Main.Zero), x22, x23, x24)_>=_new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x22, x23, x24, Main.Pos(Main.Zero))) *(new_takeWhile0(Main.Succ(x33), Main.Pos(Main.Zero), x30, x31, x32)_>=_new_takeWhile10(Main.Neg(Main.Succ(x33)), Main.Pos(Main.Zero), x30, x31, x32, Main.Pos(Main.Zero))) *(new_takeWhile0(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) *(new_takeWhile0(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *(new_takeWhile0(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile0(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Neg(x108), Main.Pos(Main.Succ(x109)), x110, x111, x112, Main.Pos(Main.Succ(x109)))_>=_new_takeWhile11(x108, Main.Pos(Main.Succ(x109)), x110, x111, x112, MyTrue)) *new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) *(new_takeWhile11(x163, x164, x165, x166, x167, MyTrue)_>=_new_takeWhile0(x163, x167, x165, x166, new_psMyInt(x165, x166, x167))) *new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x234, x235, x236, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), x234, x235, x236, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(x277)), Main.Pos(Main.Zero), x278, x279, x280, Main.Pos(Main.Zero))_>=_new_takeWhile11(Main.Succ(x277), Main.Pos(Main.Zero), x278, x279, x280, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) *new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) *(new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (399) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile0(wy7530, wy780, wy784, wy750, wy848) -> new_takeWhile10(Main.Neg(wy7530), wy780, wy784, wy750, wy848, wy780) new_takeWhile10(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile11(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile11(wy7530, wy749, wy784, wy750, wy780, MyTrue) -> new_takeWhile0(wy7530, wy780, wy784, wy750, new_psMyInt(wy784, wy750, wy780)) new_takeWhile10(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile11(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile11(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) new_takeWhile10(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile11(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt(wy799, Main.Pos(wy7980), wy797) -> new_primPlusInt2(new_primPlusNat0(Main.Succ(wy799), wy7980), wy797) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_psMyInt(wy799, Main.Neg(wy7980), wy797) -> new_primPlusInt0(wy7980, Main.Succ(wy799), wy797) new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt(x0, Main.Neg(x1), x2) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_psMyInt(x0, Main.Pos(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (400) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Pos(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Zero, Main.Succ(wy73500))) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not3) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) new_takeWhile17(Main.Pos(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not3) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (401) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes. ---------------------------------------- (402) Complex Obligation (AND) ---------------------------------------- (403) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (404) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (405) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (406) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (407) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (408) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (409) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (410) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73500), Main.Zero)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1)) ---------------------------------------- (411) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (412) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (413) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (414) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (415) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (416) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (417) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (418) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (419) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (420) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (421) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (422) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (423) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (424) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (425) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (426) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Neg(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, new_not0(wy7350, Main.Succ(wy73800))) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))),new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5)))) ---------------------------------------- (427) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (428) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (429) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (430) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue)) ---------------------------------------- (431) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (432) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (433) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (434) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (435) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (436) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(wy73500)), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(wy73500), wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (437) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) 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. new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 0 POL(Main.Zero) = 1 POL(MyFalse) = 0 POL(MyTrue) = 1 POL(new_not0(x_1, x_2)) = 1 POL(new_not1) = 1 POL(new_not2) = 1 POL(new_not3) = 1 POL(new_not4) = 0 POL(new_not5) = 1 POL(new_primMinusNat0(x_1, x_2)) = 0 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 POL(new_primPlusInt1(x_1, x_2)) = 0 POL(new_primPlusInt2(x_1, x_2)) = x_1 POL(new_primPlusNat0(x_1, x_2)) = x_1 POL(new_primPlusNat2(x_1, x_2)) = x_1 POL(new_psMyInt2(x_1, x_2, x_3)) = 0 POL(new_takeWhile17(x_1, x_2, x_3, x_4, x_5, x_6)) = 1 + x_3 + x_4 + x_5 + x_6 POL(new_takeWhile18(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 POL(new_takeWhile7(x_1, x_2, x_3, x_4, x_5)) = 1 + x_2 + x_3 + x_4 + x_5 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_not0(Main.Zero, Main.Zero) -> new_not2 new_not1 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_not3 -> new_not4 new_not4 -> MyFalse new_not5 -> MyTrue new_not2 -> new_not5 ---------------------------------------- (439) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (440) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (441) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (442) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: *We consider the chain new_takeWhile18(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile7(x10, x11, x12, x13, x14) -> new_takeWhile17(Main.Neg(x10), x11, x12, x13, x14, x11) which results in the following constraint: (1) (new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile7(x10, x11, x12, x13, x14) ==> new_takeWhile18(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile18(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) For Pair new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) the following chains were created: *We consider the chain new_takeWhile7(x45, x46, x47, x48, x49) -> new_takeWhile17(Main.Neg(x45), x46, x47, x48, x49, x46), new_takeWhile17(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) -> new_takeWhile18(x50, Main.Neg(Main.Succ(x51)), x52, x53, x54, new_not0(x50, Main.Succ(x51))) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x45), x46, x47, x48, x49, x46)=new_takeWhile17(Main.Neg(x50), Main.Neg(Main.Succ(x51)), x52, x53, x54, Main.Neg(Main.Succ(x51))) ==> new_takeWhile7(x45, x46, x47, x48, x49)_>=_new_takeWhile17(Main.Neg(x45), x46, x47, x48, x49, x46)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile17(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) *We consider the chain new_takeWhile7(x55, x56, x57, x58, x59) -> new_takeWhile17(Main.Neg(x55), x56, x57, x58, x59, x56), new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x61, x62, x63, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x60), Main.Pos(Main.Zero), x61, x62, x63, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x55), x56, x57, x58, x59, x56)=new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x61, x62, x63, Main.Pos(Main.Zero)) ==> new_takeWhile7(x55, x56, x57, x58, x59)_>=_new_takeWhile17(Main.Neg(x55), x56, x57, x58, x59, x56)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(x60), Main.Pos(Main.Zero), x57, x58, x59)_>=_new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x57, x58, x59, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile7(x64, x65, x66, x67, x68) -> new_takeWhile17(Main.Neg(x64), x65, x66, x67, x68, x65), new_takeWhile17(Main.Neg(x69), Main.Pos(Main.Succ(x70)), x71, x72, x73, Main.Pos(Main.Succ(x70))) -> new_takeWhile18(x69, Main.Pos(Main.Succ(x70)), x71, x72, x73, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x64), x65, x66, x67, x68, x65)=new_takeWhile17(Main.Neg(x69), Main.Pos(Main.Succ(x70)), x71, x72, x73, Main.Pos(Main.Succ(x70))) ==> new_takeWhile7(x64, x65, x66, x67, x68)_>=_new_takeWhile17(Main.Neg(x64), x65, x66, x67, x68, x65)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(x64, Main.Pos(Main.Succ(x70)), x66, x67, x68)_>=_new_takeWhile17(Main.Neg(x64), Main.Pos(Main.Succ(x70)), x66, x67, x68, Main.Pos(Main.Succ(x70)))) *We consider the chain new_takeWhile7(x74, x75, x76, x77, x78) -> new_takeWhile17(Main.Neg(x74), x75, x76, x77, x78, x75), new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x79, x80, x81, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x74), x75, x76, x77, x78, x75)=new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x79, x80, x81, Main.Pos(Main.Zero)) ==> new_takeWhile7(x74, x75, x76, x77, x78)_>=_new_takeWhile17(Main.Neg(x74), x75, x76, x77, x78, x75)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x76, x77, x78)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x76, x77, x78, Main.Pos(Main.Zero))) For Pair new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83))) -> new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83))), new_takeWhile18(x87, x88, x89, x90, x91, MyTrue) -> new_takeWhile7(x87, x91, x89, x90, new_psMyInt2(x89, x90, x91)) which results in the following constraint: (1) (new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))=new_takeWhile18(x87, x88, x89, x90, x91, MyTrue) ==> new_takeWhile17(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Succ(x83)=x204 & new_not0(x82, x204)=MyTrue ==> new_takeWhile17(Main.Neg(x82), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(x82, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(x82, Main.Succ(x83)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x82, x204)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile17(Main.Neg(Main.Succ(x205)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Succ(x205), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x205), Main.Succ(x83)))) (4) (new_not3=MyTrue & Main.Succ(x83)=Main.Succ(x206) ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) (5) (new_not0(x208, x207)=MyTrue & Main.Succ(x83)=Main.Succ(x207) & (\/x209,x210,x211,x212:new_not0(x208, x207)=MyTrue & Main.Succ(x209)=x207 ==> new_takeWhile17(Main.Neg(x208), Main.Neg(Main.Succ(x209)), x210, x211, x212, Main.Neg(Main.Succ(x209)))_>=_new_takeWhile18(x208, Main.Neg(Main.Succ(x209)), x210, x211, x212, new_not0(x208, Main.Succ(x209)))) ==> new_takeWhile17(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Succ(x208), Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x83)))) (6) (new_not2=MyTrue & Main.Succ(x83)=Main.Zero ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (7) (new_not3=MyTrue ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_not0(x208, x207)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(x208)), Main.Neg(Main.Succ(x207)), x84, x85, x86, Main.Neg(Main.Succ(x207)))_>=_new_takeWhile18(Main.Succ(x208), Main.Neg(Main.Succ(x207)), x84, x85, x86, new_not0(Main.Succ(x208), Main.Succ(x207)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (9) (new_not4=MyTrue ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (10) (new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x208, x207)=MyTrue which results in the following new constraints: (11) (new_not1=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) (12) (new_not3=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) (13) (new_not0(x216, x215)=MyTrue & (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile18(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) (14) (new_not2=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) We simplified constraint (11) using rule (IV) which results in the following new constraint: (15) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (16) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x217,x218,x219:new_not0(x216, x215)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x217, x218, x219, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x217, x218, x219, new_not0(Main.Succ(x216), Main.Succ(x215)))) with sigma = [x217 / x84, x218 / x85, x219 / x86] which results in the following new constraint: (17) (new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile18(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) We simplified constraint (14) using rule (IV) which results in the following new constraint: (18) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) For Pair new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue), new_takeWhile18(x121, x122, x123, x124, x125, MyTrue) -> new_takeWhile7(x121, x125, x123, x124, new_psMyInt2(x123, x124, x125)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)=new_takeWhile18(x121, x122, x123, x124, x125, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)) For Pair new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147))) -> new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue), new_takeWhile18(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155)) which results in the following constraint: (1) (new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)=new_takeWhile18(x151, x152, x153, x154, x155, MyTrue) ==> new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147)))_>=_new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147)))_>=_new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue), new_takeWhile18(x184, x185, x186, x187, x188, MyTrue) -> new_takeWhile7(x184, x188, x186, x187, new_psMyInt2(x186, x187, x188)) which results in the following constraint: (1) (new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)=new_takeWhile18(x184, x185, x186, x187, x188, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) *(new_takeWhile18(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile7(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) *new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) *(new_takeWhile7(x45, Main.Neg(Main.Succ(x51)), x47, x48, x49)_>=_new_takeWhile17(Main.Neg(x45), Main.Neg(Main.Succ(x51)), x47, x48, x49, Main.Neg(Main.Succ(x51)))) *(new_takeWhile7(Main.Succ(x60), Main.Pos(Main.Zero), x57, x58, x59)_>=_new_takeWhile17(Main.Neg(Main.Succ(x60)), Main.Pos(Main.Zero), x57, x58, x59, Main.Pos(Main.Zero))) *(new_takeWhile7(x64, Main.Pos(Main.Succ(x70)), x66, x67, x68)_>=_new_takeWhile17(Main.Neg(x64), Main.Pos(Main.Succ(x70)), x66, x67, x68, Main.Pos(Main.Succ(x70)))) *(new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x76, x77, x78)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x76, x77, x78, Main.Pos(Main.Zero))) *new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) *(new_takeWhile17(Main.Neg(Main.Succ(x216)), Main.Neg(Main.Succ(x215)), x84, x85, x86, Main.Neg(Main.Succ(x215)))_>=_new_takeWhile18(Main.Succ(x216), Main.Neg(Main.Succ(x215)), x84, x85, x86, new_not0(Main.Succ(x216), Main.Succ(x215))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x216))), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x215))))_>=_new_takeWhile18(Main.Succ(Main.Succ(x216)), Main.Neg(Main.Succ(Main.Succ(x215))), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x216)), Main.Succ(Main.Succ(x215))))) *(new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x83)), x84, x85, x86, Main.Neg(Main.Succ(x83)))_>=_new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x83)), x84, x85, x86, new_not0(Main.Zero, Main.Succ(x83)))) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x213))), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x213)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Succ(x213)), Main.Succ(Main.Zero)))) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, Main.Neg(Main.Succ(Main.Succ(x214))))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x214))), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x214))))) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x84, x85, x86, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) *new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(x117)), Main.Pos(Main.Zero), x118, x119, x120, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x117), Main.Pos(Main.Zero), x118, x119, x120, MyTrue)) *new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Neg(x146), Main.Pos(Main.Succ(x147)), x148, x149, x150, Main.Pos(Main.Succ(x147)))_>=_new_takeWhile18(x146, Main.Pos(Main.Succ(x147)), x148, x149, x150, MyTrue)) *new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x181, x182, x183, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x181, x182, x183, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (443) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (444) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(z0), Main.Neg(Main.Succ(x5)), z2, z3, z4, Main.Neg(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Neg(Main.Succ(x5)), z2, z3, z4, new_not0(z0, Main.Succ(x5))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1))) ---------------------------------------- (445) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), y2, y3, y4, Main.Neg(Main.Succ(x0))) -> new_takeWhile18(Main.Zero, Main.Neg(Main.Succ(x0)), y2, y3, y4, new_not3) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (446) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (447) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (448) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), y2, y3, y4, Main.Neg(Main.Succ(x1))) -> new_takeWhile18(Main.Succ(x0), Main.Neg(Main.Succ(x1)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) ---------------------------------------- (449) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x0)))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not3) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (450) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (451) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (452) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (453) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (454) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (455) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (456) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (457) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (458) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (459) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (460) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(x1)))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(x1))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) ---------------------------------------- (461) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not3) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (462) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (463) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (464) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (465) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (466) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (467) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (468) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (469) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (470) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (471) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (472) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) ---------------------------------------- (473) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not3) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (474) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (475) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (476) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) ---------------------------------------- (477) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (478) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) ---------------------------------------- (479) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (480) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) ---------------------------------------- (481) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (482) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) ---------------------------------------- (483) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (484) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (485) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (486) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) the following chains were created: *We consider the chain new_takeWhile7(x5, x6, x7, x8, x9) -> new_takeWhile17(Main.Neg(x5), x6, x7, x8, x9, x6), new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x11, x12, x13, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x10), Main.Pos(Main.Zero), x11, x12, x13, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x5), x6, x7, x8, x9, x6)=new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x11, x12, x13, Main.Pos(Main.Zero)) ==> new_takeWhile7(x5, x6, x7, x8, x9)_>=_new_takeWhile17(Main.Neg(x5), x6, x7, x8, x9, x6)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(x10), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x7, x8, x9, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile7(x19, x20, x21, x22, x23) -> new_takeWhile17(Main.Neg(x19), x20, x21, x22, x23, x20), new_takeWhile17(Main.Neg(x24), Main.Pos(Main.Succ(x25)), x26, x27, x28, Main.Pos(Main.Succ(x25))) -> new_takeWhile18(x24, Main.Pos(Main.Succ(x25)), x26, x27, x28, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x19), x20, x21, x22, x23, x20)=new_takeWhile17(Main.Neg(x24), Main.Pos(Main.Succ(x25)), x26, x27, x28, Main.Pos(Main.Succ(x25))) ==> new_takeWhile7(x19, x20, x21, x22, x23)_>=_new_takeWhile17(Main.Neg(x19), x20, x21, x22, x23, x20)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(x19, Main.Pos(Main.Succ(x25)), x21, x22, x23)_>=_new_takeWhile17(Main.Neg(x19), Main.Pos(Main.Succ(x25)), x21, x22, x23, Main.Pos(Main.Succ(x25)))) *We consider the chain new_takeWhile7(x29, x30, x31, x32, x33) -> new_takeWhile17(Main.Neg(x29), x30, x31, x32, x33, x30), new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x34, x35, x36, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x29), x30, x31, x32, x33, x30)=new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x34, x35, x36, Main.Pos(Main.Zero)) ==> new_takeWhile7(x29, x30, x31, x32, x33)_>=_new_takeWhile17(Main.Neg(x29), x30, x31, x32, x33, x30)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x31, x32, x33)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x31, x32, x33, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile7(x37, x38, x39, x40, x41) -> new_takeWhile17(Main.Neg(x37), x38, x39, x40, x41, x38), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x37), x38, x39, x40, x41, x38)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x43, x44, x45, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile7(x37, x38, x39, x40, x41)_>=_new_takeWhile17(Main.Neg(x37), x38, x39, x40, x41, x38)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) *We consider the chain new_takeWhile7(x46, x47, x48, x49, x50) -> new_takeWhile17(Main.Neg(x46), x47, x48, x49, x50, x47), new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x46), x47, x48, x49, x50, x47)=new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x51, x52, x53, Main.Neg(Main.Succ(Main.Zero))) ==> new_takeWhile7(x46, x47, x48, x49, x50)_>=_new_takeWhile17(Main.Neg(x46), x47, x48, x49, x50, x47)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) *We consider the chain new_takeWhile7(x54, x55, x56, x57, x58) -> new_takeWhile17(Main.Neg(x54), x55, x56, x57, x58, x55), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x54), x55, x56, x57, x58, x55)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x60, x61, x62, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile7(x54, x55, x56, x57, x58)_>=_new_takeWhile17(Main.Neg(x54), x55, x56, x57, x58, x55)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile7(x63, x64, x65, x66, x67) -> new_takeWhile17(Main.Neg(x63), x64, x65, x66, x67, x64), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x63), x64, x65, x66, x67, x64)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x68, x69, x70, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile7(x63, x64, x65, x66, x67)_>=_new_takeWhile17(Main.Neg(x63), x64, x65, x66, x67, x64)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile7(x71, x72, x73, x74, x75) -> new_takeWhile17(Main.Neg(x71), x72, x73, x74, x75, x72), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, new_not0(x76, x77)) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x71), x72, x73, x74, x75, x72)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x78, x79, x80, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77)))))) ==> new_takeWhile7(x71, x72, x73, x74, x75)_>=_new_takeWhile17(Main.Neg(x71), x72, x73, x74, x75, x72)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) *We consider the chain new_takeWhile7(x81, x82, x83, x84, x85) -> new_takeWhile17(Main.Neg(x81), x82, x83, x84, x85, x82), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x81), x82, x83, x84, x85, x82)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x87, x88, x89, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile7(x81, x82, x83, x84, x85)_>=_new_takeWhile17(Main.Neg(x81), x82, x83, x84, x85, x82)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *We consider the chain new_takeWhile7(x90, x91, x92, x93, x94) -> new_takeWhile17(Main.Neg(x90), x91, x92, x93, x94, x91), new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Neg(x90), x91, x92, x93, x94, x91)=new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x95, x96, x97, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile7(x90, x91, x92, x93, x94)_>=_new_takeWhile17(Main.Neg(x90), x91, x92, x93, x94, x91)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) For Pair new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue), new_takeWhile18(x110, x111, x112, x113, x114, MyTrue) -> new_takeWhile7(x110, x114, x112, x113, new_psMyInt2(x112, x113, x114)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)=new_takeWhile18(x110, x111, x112, x113, x114, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)) For Pair new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: *We consider the chain new_takeWhile18(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155)), new_takeWhile7(x156, x157, x158, x159, x160) -> new_takeWhile17(Main.Neg(x156), x157, x158, x159, x160, x157) which results in the following constraint: (1) (new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))=new_takeWhile7(x156, x157, x158, x159, x160) ==> new_takeWhile18(x151, x152, x153, x154, x155, MyTrue)_>=_new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile18(x151, x152, x153, x154, x155, MyTrue)_>=_new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))) For Pair new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227))) -> new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue), new_takeWhile18(x231, x232, x233, x234, x235, MyTrue) -> new_takeWhile7(x231, x235, x233, x234, new_psMyInt2(x233, x234, x235)) which results in the following constraint: (1) (new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)=new_takeWhile18(x231, x232, x233, x234, x235, MyTrue) ==> new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227)))_>=_new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227)))_>=_new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue), new_takeWhile18(x290, x291, x292, x293, x294, MyTrue) -> new_takeWhile7(x290, x294, x292, x293, new_psMyInt2(x292, x293, x294)) which results in the following constraint: (1) (new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)=new_takeWhile18(x290, x291, x292, x293, x294, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue), new_takeWhile18(x334, x335, x336, x337, x338, MyTrue) -> new_takeWhile7(x334, x338, x336, x337, new_psMyInt2(x336, x337, x338)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)=new_takeWhile18(x334, x335, x336, x337, x338, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue), new_takeWhile18(x384, x385, x386, x387, x388, MyTrue) -> new_takeWhile7(x384, x388, x386, x387, new_psMyInt2(x386, x387, x388)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)=new_takeWhile18(x384, x385, x386, x387, x388, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue), new_takeWhile18(x428, x429, x430, x431, x432, MyTrue) -> new_takeWhile7(x428, x432, x430, x431, new_psMyInt2(x430, x431, x432)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)=new_takeWhile18(x428, x429, x430, x431, x432, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue), new_takeWhile18(x478, x479, x480, x481, x482, MyTrue) -> new_takeWhile7(x478, x482, x480, x481, new_psMyInt2(x480, x481, x482)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)=new_takeWhile18(x478, x479, x480, x481, x482, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521)), new_takeWhile18(x525, x526, x527, x528, x529, MyTrue) -> new_takeWhile7(x525, x529, x527, x528, new_psMyInt2(x527, x528, x529)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))=new_takeWhile18(x525, x526, x527, x528, x529, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not0(x520, x521)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x520)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x521))))), x522, x523, x524, new_not0(x520, x521))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x520, x521)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) (4) (new_not3=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) (5) (new_not0(x672, x671)=MyTrue & (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) (6) (new_not2=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (8) (new_not4=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x673,x674,x675:new_not0(x672, x671)=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x673, x674, x675, new_not0(x672, x671))) with sigma = [x673 / x522, x674 / x523, x675 / x524] which results in the following new constraint: (9) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue), new_takeWhile18(x587, x588, x589, x590, x591, MyTrue) -> new_takeWhile7(x587, x591, x589, x590, new_psMyInt2(x589, x590, x591)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)=new_takeWhile18(x587, x588, x589, x590, x591, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) For Pair new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue), new_takeWhile18(x637, x638, x639, x640, x641, MyTrue) -> new_takeWhile7(x637, x641, x639, x640, new_psMyInt2(x639, x640, x641)) which results in the following constraint: (1) (new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)=new_takeWhile18(x637, x638, x639, x640, x641, MyTrue) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) *(new_takeWhile7(Main.Succ(x10), Main.Pos(Main.Zero), x7, x8, x9)_>=_new_takeWhile17(Main.Neg(Main.Succ(x10)), Main.Pos(Main.Zero), x7, x8, x9, Main.Pos(Main.Zero))) *(new_takeWhile7(x19, Main.Pos(Main.Succ(x25)), x21, x22, x23)_>=_new_takeWhile17(Main.Neg(x19), Main.Pos(Main.Succ(x25)), x21, x22, x23, Main.Pos(Main.Succ(x25)))) *(new_takeWhile7(Main.Zero, Main.Pos(Main.Zero), x31, x32, x33)_>=_new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x31, x32, x33, Main.Pos(Main.Zero))) *(new_takeWhile7(Main.Succ(Main.Succ(x42)), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x42))), Main.Neg(Main.Succ(Main.Zero)), x39, x40, x41, Main.Neg(Main.Succ(Main.Zero)))) *(new_takeWhile7(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x48, x49, x50, Main.Neg(Main.Succ(Main.Zero)))) *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(x59))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x59)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x56, x57, x58, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *(new_takeWhile7(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x65, x66, x67, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))) *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x76))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))), x73, x74, x75, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x77))))))) *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x86))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x83, x84, x85, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *(new_takeWhile7(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94)_>=_new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x92, x93, x94, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(x106)), Main.Pos(Main.Zero), x107, x108, x109, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Succ(x106), Main.Pos(Main.Zero), x107, x108, x109, MyTrue)) *new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) *(new_takeWhile18(x151, x152, x153, x154, x155, MyTrue)_>=_new_takeWhile7(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155))) *new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Neg(x226), Main.Pos(Main.Succ(x227)), x228, x229, x230, Main.Pos(Main.Succ(x227)))_>=_new_takeWhile18(x226, Main.Pos(Main.Succ(x227)), x228, x229, x230, MyTrue)) *new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), x287, x288, x289, Main.Pos(Main.Zero))_>=_new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), x287, x288, x289, MyTrue)) *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x330))), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Succ(x330)), Main.Neg(Main.Succ(Main.Zero)), x331, x332, x333, MyTrue)) *new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, Main.Neg(Main.Succ(Main.Zero)))_>=_new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), x381, x382, x383, MyTrue)) *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x424)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x424))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x425, x426, x427, MyTrue)) *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, Main.Neg(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), x475, x476, x477, MyTrue)) *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671))))), x522, x523, x524, new_not0(x672, x671)) ==> new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x672))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x671)))))), x522, x523, x524, new_not0(Main.Succ(x672), Main.Succ(x671)))) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x669))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Succ(x669), Main.Zero))) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x670)))))), x522, x523, x524, new_not0(Main.Zero, Main.Succ(x670)))) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x522, x523, x524, new_not0(Main.Zero, Main.Zero))) *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x583)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x584, x585, x586, MyTrue)) *new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x634, x635, x636, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (487) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile7(wy7350, wy758, wy762, wy732, wy846) -> new_takeWhile17(Main.Neg(wy7350), wy758, wy762, wy732, wy846, wy758) new_takeWhile17(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Succ(x0), Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile18(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile7(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Neg(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile18(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile18(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, Main.Neg(Main.Succ(Main.Zero))) -> new_takeWhile18(Main.Succ(Main.Zero), Main.Neg(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile18(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (488) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (489) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (490) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (491) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5)) ---------------------------------------- (492) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (493) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (494) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (495) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue)) ---------------------------------------- (496) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (497) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Pos(wy7350), wy731, wy762, wy732, wy758, Main.Pos(Main.Succ(wy73800))) -> new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, new_not0(Main.Succ(wy73800), wy7350)) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)),new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0))) ---------------------------------------- (498) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (499) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (500) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (501) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), wy731, wy762, wy732, wy758, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, wy731, wy762, wy732, wy758, MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue)) ---------------------------------------- (502) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (503) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_takeWhile17(Main.Pos(Main.Zero), Main.Neg(Main.Zero), z2, z3, z4, Main.Neg(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Neg(Main.Zero), z2, z3, z4, MyTrue) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 0 POL(Main.Zero) = 1 POL(MyFalse) = 1 POL(MyTrue) = 0 POL(new_not0(x_1, x_2)) = 0 POL(new_not1) = 1 POL(new_not2) = 1 POL(new_not3) = 1 POL(new_not4) = 1 POL(new_not5) = 1 POL(new_primMinusNat0(x_1, x_2)) = 0 POL(new_primPlusInt0(x_1, x_2, x_3)) = 0 POL(new_primPlusInt1(x_1, x_2)) = 0 POL(new_primPlusInt2(x_1, x_2)) = x_1 POL(new_primPlusNat0(x_1, x_2)) = x_1 POL(new_primPlusNat2(x_1, x_2)) = x_1 POL(new_psMyInt2(x_1, x_2, x_3)) = 0 POL(new_takeWhile16(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 POL(new_takeWhile17(x_1, x_2, x_3, x_4, x_5, x_6)) = x_3 + x_4 + x_5 + x_6 POL(new_takeWhile6(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 + x_4 + x_5 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) ---------------------------------------- (504) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (505) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (506) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (507) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: *We consider the chain new_takeWhile16(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile6(x10, x11, x12, x13, x14) -> new_takeWhile17(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: (1) (new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile6(x10, x11, x12, x13, x14) ==> new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) For Pair new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) the following chains were created: *We consider the chain new_takeWhile6(x35, x36, x37, x38, x39) -> new_takeWhile17(Main.Pos(x35), x36, x37, x38, x39, x36), new_takeWhile17(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) -> new_takeWhile16(x40, Main.Pos(Main.Succ(x41)), x42, x43, x44, new_not0(Main.Succ(x41), x40)) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x35), x36, x37, x38, x39, x36)=new_takeWhile17(Main.Pos(x40), Main.Pos(Main.Succ(x41)), x42, x43, x44, Main.Pos(Main.Succ(x41))) ==> new_takeWhile6(x35, x36, x37, x38, x39)_>=_new_takeWhile17(Main.Pos(x35), x36, x37, x38, x39, x36)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile17(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) *We consider the chain new_takeWhile6(x45, x46, x47, x48, x49) -> new_takeWhile17(Main.Pos(x45), x46, x47, x48, x49, x46), new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x50, x51, x52, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x45), x46, x47, x48, x49, x46)=new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x50, x51, x52, Main.Pos(Main.Zero)) ==> new_takeWhile6(x45, x46, x47, x48, x49)_>=_new_takeWhile17(Main.Pos(x45), x46, x47, x48, x49, x46)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) For Pair new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54))) -> new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53)), new_takeWhile16(x58, x59, x60, x61, x62, MyTrue) -> new_takeWhile6(x58, x62, x60, x61, new_psMyInt2(x60, x61, x62)) which results in the following constraint: (1) (new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))=new_takeWhile16(x58, x59, x60, x61, x62, MyTrue) ==> new_takeWhile17(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Succ(x54)=x95 & new_not0(x95, x53)=MyTrue ==> new_takeWhile17(Main.Pos(x53), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(x53, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), x53))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x95, x53)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue & Main.Succ(x54)=Main.Succ(x96) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) (4) (new_not3=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile17(Main.Pos(Main.Succ(x97)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Succ(x97), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x97)))) (5) (new_not0(x99, x98)=MyTrue & Main.Succ(x54)=Main.Succ(x99) & (\/x100,x101,x102,x103:new_not0(x99, x98)=MyTrue & Main.Succ(x100)=x99 ==> new_takeWhile17(Main.Pos(x98), Main.Pos(Main.Succ(x100)), x101, x102, x103, Main.Pos(Main.Succ(x100)))_>=_new_takeWhile16(x98, Main.Pos(Main.Succ(x100)), x101, x102, x103, new_not0(Main.Succ(x100), x98))) ==> new_takeWhile17(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Succ(x98), Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Succ(x98)))) (6) (new_not2=MyTrue & Main.Succ(x54)=Main.Zero ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (7) (new_not1=MyTrue ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_not0(x99, x98)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(x98)), Main.Pos(Main.Succ(x99)), x55, x56, x57, Main.Pos(Main.Succ(x99)))_>=_new_takeWhile16(Main.Succ(x98), Main.Pos(Main.Succ(x99)), x55, x56, x57, new_not0(Main.Succ(x99), Main.Succ(x98)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (9) (new_not5=MyTrue ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (10) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not0(x99, x98)=MyTrue which results in the following new constraints: (11) (new_not1=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) (12) (new_not3=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) (13) (new_not0(x107, x106)=MyTrue & (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile16(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) (14) (new_not2=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) We simplified constraint (11) using rule (IV) which results in the following new constraint: (15) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (16) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) We simplified constraint (13) using rule (VI) where we applied the induction hypothesis (\/x108,x109,x110:new_not0(x107, x106)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x108, x109, x110, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x108, x109, x110, new_not0(Main.Succ(x107), Main.Succ(x106)))) with sigma = [x108 / x55, x109 / x56, x110 / x57] which results in the following new constraint: (17) (new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile16(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) We simplified constraint (14) using rule (IV) which results in the following new constraint: (18) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) For Pair new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue), new_takeWhile16(x81, x82, x83, x84, x85, MyTrue) -> new_takeWhile6(x81, x85, x83, x84, new_psMyInt2(x83, x84, x85)) which results in the following constraint: (1) (new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)=new_takeWhile16(x81, x82, x83, x84, x85, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) *(new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) *new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) *(new_takeWhile6(x35, Main.Pos(Main.Succ(x41)), x37, x38, x39)_>=_new_takeWhile17(Main.Pos(x35), Main.Pos(Main.Succ(x41)), x37, x38, x39, Main.Pos(Main.Succ(x41)))) *(new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x47, x48, x49)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x47, x48, x49, Main.Pos(Main.Zero))) *new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) *(new_takeWhile17(Main.Pos(Main.Succ(x106)), Main.Pos(Main.Succ(x107)), x55, x56, x57, Main.Pos(Main.Succ(x107)))_>=_new_takeWhile16(Main.Succ(x106), Main.Pos(Main.Succ(x107)), x55, x56, x57, new_not0(Main.Succ(x107), Main.Succ(x106))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x106))), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x107))))_>=_new_takeWhile16(Main.Succ(Main.Succ(x106)), Main.Pos(Main.Succ(Main.Succ(x107))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x107)), Main.Succ(Main.Succ(x106))))) *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x54)), x55, x56, x57, Main.Pos(Main.Succ(x54)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x54)), x55, x56, x57, new_not0(Main.Succ(x54), Main.Zero))) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, Main.Pos(Main.Succ(Main.Succ(x104))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x104))), x55, x56, x57, new_not0(Main.Succ(Main.Succ(x104)), Main.Succ(Main.Zero)))) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x105))), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Succ(x105)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Succ(x105))))) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x55, x56, x57, new_not0(Main.Succ(Main.Zero), Main.Succ(Main.Zero)))) *new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x78, x79, x80, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x78, x79, x80, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (508) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (509) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(z0), Main.Pos(Main.Succ(x5)), z2, z3, z4, Main.Pos(Main.Succ(x5))) -> new_takeWhile16(z0, Main.Pos(Main.Succ(x5)), z2, z3, z4, new_not0(Main.Succ(x5), z0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1))) ---------------------------------------- (510) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (511) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5)) ---------------------------------------- (512) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (513) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue)) ---------------------------------------- (514) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (515) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Succ(x1), Main.Pos(Main.Succ(x0)), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2)) ---------------------------------------- (516) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not3) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (517) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (518) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (519) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5)) ---------------------------------------- (520) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (521) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5)) ---------------------------------------- (522) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (523) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue)) ---------------------------------------- (524) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (525) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue)) ---------------------------------------- (526) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (527) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2)) ---------------------------------------- (528) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not3) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (529) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (530) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (531) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5)) ---------------------------------------- (532) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (533) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5)) ---------------------------------------- (534) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (535) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue)) ---------------------------------------- (536) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (537) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue)) ---------------------------------------- (538) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (539) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, new_not0(x0, x1)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1)) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3)) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1))) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2)) ---------------------------------------- (540) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not3) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (541) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (542) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (543) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not1) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5)) ---------------------------------------- (544) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (545) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not2) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5)) ---------------------------------------- (546) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (547) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue)) ---------------------------------------- (548) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (549) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue),new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue)) ---------------------------------------- (550) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (551) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (552) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (553) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) the following chains were created: *We consider the chain new_takeWhile16(x5, x6, x7, x8, x9, MyTrue) -> new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9)), new_takeWhile6(x10, x11, x12, x13, x14) -> new_takeWhile17(Main.Pos(x10), x11, x12, x13, x14, x11) which results in the following constraint: (1) (new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))=new_takeWhile6(x10, x11, x12, x13, x14) ==> new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) For Pair new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) the following chains were created: *We consider the chain new_takeWhile6(x70, x71, x72, x73, x74) -> new_takeWhile17(Main.Pos(x70), x71, x72, x73, x74, x71), new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x75, x76, x77, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x70), x71, x72, x73, x74, x71)=new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x75, x76, x77, Main.Pos(Main.Zero)) ==> new_takeWhile6(x70, x71, x72, x73, x74)_>=_new_takeWhile17(Main.Pos(x70), x71, x72, x73, x74, x71)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) *We consider the chain new_takeWhile6(x78, x79, x80, x81, x82) -> new_takeWhile17(Main.Pos(x78), x79, x80, x81, x82, x79), new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x83)), x84, x85, x86, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x78), x79, x80, x81, x82, x79)=new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x84, x85, x86, Main.Pos(Main.Succ(x83))) ==> new_takeWhile6(x78, x79, x80, x81, x82)_>=_new_takeWhile17(Main.Pos(x78), x79, x80, x81, x82, x79)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) *We consider the chain new_takeWhile6(x87, x88, x89, x90, x91) -> new_takeWhile17(Main.Pos(x87), x88, x89, x90, x91, x88), new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x87), x88, x89, x90, x91, x88)=new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x93, x94, x95, Main.Pos(Main.Succ(Main.Succ(x92)))) ==> new_takeWhile6(x87, x88, x89, x90, x91)_>=_new_takeWhile17(Main.Pos(x87), x88, x89, x90, x91, x88)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) *We consider the chain new_takeWhile6(x96, x97, x98, x99, x100) -> new_takeWhile17(Main.Pos(x96), x97, x98, x99, x100, x97), new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x96), x97, x98, x99, x100, x97)=new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x101, x102, x103, Main.Pos(Main.Succ(Main.Zero))) ==> new_takeWhile6(x96, x97, x98, x99, x100)_>=_new_takeWhile17(Main.Pos(x96), x97, x98, x99, x100, x97)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) *We consider the chain new_takeWhile6(x104, x105, x106, x107, x108) -> new_takeWhile17(Main.Pos(x104), x105, x106, x107, x108, x105), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x104), x105, x106, x107, x108, x105)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x110, x111, x112, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109))))) ==> new_takeWhile6(x104, x105, x106, x107, x108)_>=_new_takeWhile17(Main.Pos(x104), x105, x106, x107, x108, x105)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) *We consider the chain new_takeWhile6(x113, x114, x115, x116, x117) -> new_takeWhile17(Main.Pos(x113), x114, x115, x116, x117, x114), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x113), x114, x115, x116, x117, x114)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x118, x119, x120, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) ==> new_takeWhile6(x113, x114, x115, x116, x117)_>=_new_takeWhile17(Main.Pos(x113), x114, x115, x116, x117, x114)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) *We consider the chain new_takeWhile6(x121, x122, x123, x124, x125) -> new_takeWhile17(Main.Pos(x121), x122, x123, x124, x125, x122), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, new_not0(x127, x126)) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x121), x122, x123, x124, x125, x122)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x128, x129, x130, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127)))))) ==> new_takeWhile6(x121, x122, x123, x124, x125)_>=_new_takeWhile17(Main.Pos(x121), x122, x123, x124, x125, x122)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) *We consider the chain new_takeWhile6(x131, x132, x133, x134, x135) -> new_takeWhile17(Main.Pos(x131), x132, x133, x134, x135, x132), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x131), x132, x133, x134, x135, x132)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x137, x138, x139, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136)))))) ==> new_takeWhile6(x131, x132, x133, x134, x135)_>=_new_takeWhile17(Main.Pos(x131), x132, x133, x134, x135, x132)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) *We consider the chain new_takeWhile6(x140, x141, x142, x143, x144) -> new_takeWhile17(Main.Pos(x140), x141, x142, x143, x144, x141), new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, MyTrue) which results in the following constraint: (1) (new_takeWhile17(Main.Pos(x140), x141, x142, x143, x144, x141)=new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x145, x146, x147, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) ==> new_takeWhile6(x140, x141, x142, x143, x144)_>=_new_takeWhile17(Main.Pos(x140), x141, x142, x143, x144, x141)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) For Pair new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue), new_takeWhile16(x151, x152, x153, x154, x155, MyTrue) -> new_takeWhile6(x151, x155, x153, x154, new_psMyInt2(x153, x154, x155)) which results in the following constraint: (1) (new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)=new_takeWhile16(x151, x152, x153, x154, x155, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue), new_takeWhile16(x190, x191, x192, x193, x194, MyTrue) -> new_takeWhile6(x190, x194, x192, x193, new_psMyInt2(x192, x193, x194)) which results in the following constraint: (1) (new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)=new_takeWhile16(x190, x191, x192, x193, x194, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue), new_takeWhile16(x239, x240, x241, x242, x243, MyTrue) -> new_takeWhile6(x239, x243, x241, x242, new_psMyInt2(x241, x242, x243)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)=new_takeWhile16(x239, x240, x241, x242, x243, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue), new_takeWhile16(x287, x288, x289, x290, x291, MyTrue) -> new_takeWhile6(x287, x291, x289, x290, new_psMyInt2(x289, x290, x291)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)=new_takeWhile16(x287, x288, x289, x290, x291, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue), new_takeWhile16(x326, x327, x328, x329, x330, MyTrue) -> new_takeWhile6(x326, x330, x328, x329, new_psMyInt2(x328, x329, x330)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)=new_takeWhile16(x326, x327, x328, x329, x330, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue), new_takeWhile16(x374, x375, x376, x377, x378, MyTrue) -> new_takeWhile6(x374, x378, x376, x377, new_psMyInt2(x376, x377, x378)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)=new_takeWhile16(x374, x375, x376, x377, x378, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409)), new_takeWhile16(x414, x415, x416, x417, x418, MyTrue) -> new_takeWhile6(x414, x418, x416, x417, new_psMyInt2(x416, x417, x418)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))=new_takeWhile16(x414, x415, x416, x417, x418, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not0(x410, x409)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x409)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x410))))), x411, x412, x413, new_not0(x410, x409))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not0(x410, x409)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) (4) (new_not3=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) (5) (new_not0(x559, x558)=MyTrue & (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) (6) (new_not2=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (8) (new_not4=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) We simplified constraint (5) using rule (VI) where we applied the induction hypothesis (\/x560,x561,x562:new_not0(x559, x558)=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x560, x561, x562, new_not0(x559, x558))) with sigma = [x560 / x411, x561 / x412, x562 / x413] which results in the following new constraint: (9) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (12) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (13) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue), new_takeWhile16(x473, x474, x475, x476, x477, MyTrue) -> new_takeWhile6(x473, x477, x475, x476, new_psMyInt2(x475, x476, x477)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)=new_takeWhile16(x473, x474, x475, x476, x477, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) For Pair new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) the following chains were created: *We consider the chain new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue), new_takeWhile16(x521, x522, x523, x524, x525, MyTrue) -> new_takeWhile6(x521, x525, x523, x524, new_psMyInt2(x523, x524, x525)) which results in the following constraint: (1) (new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)=new_takeWhile16(x521, x522, x523, x524, x525, MyTrue) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) *(new_takeWhile16(x5, x6, x7, x8, x9, MyTrue)_>=_new_takeWhile6(x5, x9, x7, x8, new_psMyInt2(x7, x8, x9))) *new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) *(new_takeWhile6(Main.Zero, Main.Pos(Main.Zero), x72, x73, x74)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x72, x73, x74, Main.Pos(Main.Zero))) *(new_takeWhile6(Main.Zero, Main.Pos(Main.Succ(x83)), x80, x81, x82)_>=_new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x83)), x80, x81, x82, Main.Pos(Main.Succ(x83)))) *(new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x92))), x89, x90, x91, Main.Pos(Main.Succ(Main.Succ(x92))))) *(new_takeWhile6(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x98, x99, x100, Main.Pos(Main.Succ(Main.Zero)))) *(new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))), x106, x107, x108, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x109)))))) *(new_takeWhile6(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x115, x116, x117, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))) *(new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x126))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))), x123, x124, x125, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x127))))))) *(new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))), x133, x134, x135, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x136))))))) *(new_takeWhile6(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144)_>=_new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x142, x143, x144, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))) *new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), x148, x149, x150, Main.Pos(Main.Zero))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), x148, x149, x150, MyTrue)) *new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x186)), x187, x188, x189, Main.Pos(Main.Succ(x186)))_>=_new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x186)), x187, x188, x189, MyTrue)) *new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, Main.Pos(Main.Succ(Main.Succ(x235))))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x235))), x236, x237, x238, MyTrue)) *new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, Main.Pos(Main.Succ(Main.Zero)))_>=_new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), x284, x285, x286, MyTrue)) *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x322)))), x323, x324, x325, MyTrue)) *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, Main.Pos(Main.Succ(Main.Succ(Main.Zero))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), x371, x372, x373, MyTrue)) *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559))))), x411, x412, x413, new_not0(x559, x558)) ==> new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x558))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x559)))))), x411, x412, x413, new_not0(Main.Succ(x559), Main.Succ(x558)))) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x556)))))), x411, x412, x413, new_not0(Main.Succ(x556), Main.Zero))) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x557))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Succ(x557)))) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), x411, x412, x413, new_not0(Main.Zero, Main.Zero))) *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x469))))), x470, x471, x472, MyTrue)) *new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) *(new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))))_>=_new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), x518, x519, x520, MyTrue)) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (554) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile16(wy7350, wy731, wy762, wy732, wy758, MyTrue) -> new_takeWhile6(wy7350, wy758, wy762, wy732, new_psMyInt2(wy762, wy732, wy758)) new_takeWhile6(wy7350, wy758, wy762, wy732, wy845) -> new_takeWhile17(Main.Pos(wy7350), wy758, wy762, wy732, wy845, wy758) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Zero), z2, z3, z4, Main.Pos(Main.Zero)) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Zero), z2, z3, z4, MyTrue) new_takeWhile17(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), y2, y3, y4, Main.Pos(Main.Succ(x0))) -> new_takeWhile16(Main.Zero, Main.Pos(Main.Succ(x0)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(x0)))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x0))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, Main.Pos(Main.Succ(Main.Zero))) -> new_takeWhile16(Main.Succ(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Zero)))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, new_not0(x0, x1)) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), y2, y3, y4, MyTrue) new_takeWhile17(Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))) -> new_takeWhile16(Main.Succ(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), y2, y3, y4, MyTrue) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt2(wy778, Main.Neg(wy7770), wy776) -> new_primPlusInt1(new_primPlusNat2(wy778, wy7770), wy776) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt2(wy778, Main.Pos(Main.Zero), wy776) -> new_primPlusInt1(Main.Succ(wy778), wy776) new_primPlusNat2(wy778, Main.Zero) -> Main.Succ(wy778) new_primPlusNat2(wy778, Main.Succ(wy77600)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy778, wy77600))) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_psMyInt2(wy778, Main.Pos(Main.Succ(wy77700)), wy776) -> new_primPlusInt0(wy778, wy77700, wy776) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusNat2(x0, Main.Succ(x1)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt2(x0, Main.Pos(Main.Succ(x1)), x2) new_not3 new_primPlusNat2(x0, Main.Zero) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_psMyInt2(x0, Main.Neg(x1), x2) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_psMyInt2(x0, Main.Pos(Main.Zero), x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (555) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS1(wy16000), Main.Zero) new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) new_primDivNatS00(wy850, wy851) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Zero) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) new_primDivNatS0(wy850, wy851, Main.Zero, Main.Zero) -> new_primDivNatS00(wy850, wy851) new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Succ(wy17000)) -> new_primDivNatS0(wy16000, wy17000, wy16000, wy17000) new_primDivNatS(Main.Succ(Main.Zero), Main.Zero) -> new_primDivNatS(new_primMinusNatS2, Main.Zero) The TRS R consists of the following rules: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero new_primMinusNatS2 -> Main.Zero new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) The set Q consists of the following terms: new_primMinusNatS0(Main.Zero, Main.Zero) new_primMinusNatS2 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) new_primMinusNatS1(x0) new_primMinusNatS0(Main.Succ(x0), Main.Zero) new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (556) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (557) Complex Obligation (AND) ---------------------------------------- (558) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Zero) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Succ(wy17000)) -> new_primDivNatS0(wy16000, wy17000, wy16000, wy17000) new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) new_primDivNatS0(wy850, wy851, Main.Zero, Main.Zero) -> new_primDivNatS00(wy850, wy851) new_primDivNatS00(wy850, wy851) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) The TRS R consists of the following rules: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero new_primMinusNatS2 -> Main.Zero new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) The set Q consists of the following terms: new_primMinusNatS0(Main.Zero, Main.Zero) new_primMinusNatS2 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) new_primMinusNatS1(x0) new_primMinusNatS0(Main.Succ(x0), Main.Zero) new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (559) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Succ(wy17000)) -> new_primDivNatS0(wy16000, wy17000, wy16000, wy17000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 POL(new_primDivNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primDivNatS00(x_1, x_2)) = 1 + x_1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero ---------------------------------------- (560) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Zero) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) new_primDivNatS0(wy850, wy851, Main.Zero, Main.Zero) -> new_primDivNatS00(wy850, wy851) new_primDivNatS00(wy850, wy851) -> new_primDivNatS(new_primMinusNatS0(Main.Succ(wy850), Main.Succ(wy851)), Main.Succ(wy851)) The TRS R consists of the following rules: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero new_primMinusNatS2 -> Main.Zero new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) The set Q consists of the following terms: new_primMinusNatS0(Main.Zero, Main.Zero) new_primMinusNatS2 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) new_primMinusNatS1(x0) new_primMinusNatS0(Main.Succ(x0), Main.Zero) new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (561) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (562) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) The TRS R consists of the following rules: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero new_primMinusNatS2 -> Main.Zero new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) The set Q consists of the following terms: new_primMinusNatS0(Main.Zero, Main.Zero) new_primMinusNatS2 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) new_primMinusNatS1(x0) new_primMinusNatS0(Main.Succ(x0), Main.Zero) new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (563) 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: *new_primDivNatS0(wy850, wy851, Main.Succ(wy8520), Main.Succ(wy8530)) -> new_primDivNatS0(wy850, wy851, wy8520, wy8530) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (564) YES ---------------------------------------- (565) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS1(wy16000), Main.Zero) The TRS R consists of the following rules: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero new_primMinusNatS2 -> Main.Zero new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) The set Q consists of the following terms: new_primMinusNatS0(Main.Zero, Main.Zero) new_primMinusNatS2 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) new_primMinusNatS1(x0) new_primMinusNatS0(Main.Succ(x0), Main.Zero) new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (566) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: new_primDivNatS(Main.Succ(Main.Succ(wy16000)), Main.Zero) -> new_primDivNatS(new_primMinusNatS1(wy16000), Main.Zero) Strictly oriented rules of the TRS R: new_primMinusNatS0(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS0(wy7250, wy7260) new_primMinusNatS0(Main.Succ(wy7250), Main.Zero) -> Main.Succ(wy7250) new_primMinusNatS0(Main.Zero, Main.Zero) -> Main.Zero new_primMinusNatS0(Main.Zero, Main.Succ(wy7260)) -> Main.Zero Used ordering: Polynomial interpretation [POLO]: POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 2 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS0(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primMinusNatS1(x_1)) = 1 + x_1 POL(new_primMinusNatS2) = 2 ---------------------------------------- (567) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS2 -> Main.Zero new_primMinusNatS1(wy40000) -> Main.Succ(wy40000) The set Q consists of the following terms: new_primMinusNatS0(Main.Zero, Main.Zero) new_primMinusNatS2 new_primMinusNatS0(Main.Zero, Main.Succ(x0)) new_primMinusNatS1(x0) new_primMinusNatS0(Main.Succ(x0), Main.Zero) new_primMinusNatS0(Main.Succ(x0), Main.Succ(x1)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (568) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (569) YES ---------------------------------------- (570) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip(Main.Zero, Main.Neg(Main.Zero)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip(Main.Zero, Main.Pos(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_flip(x0, Main.Pos(Main.Succ(x1))) new_psMyInt1(Main.Neg(x0), x1) new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip(x0, Main.Neg(Main.Succ(x1))) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_primPlusNat1(Main.Zero) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat1(Main.Succ(x0)) new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (571) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (572) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (573) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) the following chains were created: *We consider the chain new_takeWhile13(x4, x5, x6, x7, MyTrue) -> new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7)), new_takeWhile3(x8, x9, x10, x11) -> new_takeWhile13(x8, x9, x10, x11, new_flip(x8, x9)) which results in the following constraint: (1) (new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))=new_takeWhile3(x8, x9, x10, x11) ==> new_takeWhile13(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile13(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))) For Pair new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) the following chains were created: *We consider the chain new_takeWhile3(x12, x13, x14, x15) -> new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13)), new_takeWhile13(x16, x17, x18, x19, MyTrue) -> new_takeWhile3(x16, x19, x18, new_psMyInt1(x18, x19)) which results in the following constraint: (1) (new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13))=new_takeWhile13(x16, x17, x18, x19, MyTrue) ==> new_takeWhile3(x12, x13, x14, x15)_>=_new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_flip(x12, x13)=MyTrue ==> new_takeWhile3(x12, x13, x14, x15)_>=_new_takeWhile13(x12, x13, x14, x15, new_flip(x12, x13))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip(x12, x13)=MyTrue which results in the following new constraints: (3) (new_not1=MyTrue ==> new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) (4) (new_not2=MyTrue ==> new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) (5) (new_not0(x26, Main.Succ(x25))=MyTrue ==> new_takeWhile3(x26, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(x26, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(x26, Main.Neg(Main.Succ(x25))))) (6) (new_not1=MyTrue ==> new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) (7) (new_not0(Main.Succ(x29), Main.Zero)=MyTrue ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (8) (new_not2=MyTrue ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (9) (new_not5=MyTrue ==> new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (5) using rule (VII) which results in the following new constraint: (11) (Main.Succ(x25)=x30 & new_not0(x26, x30)=MyTrue ==> new_takeWhile3(x26, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(x26, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(x26, Main.Neg(Main.Succ(x25))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not1=MyTrue which results in the following new constraint: (12) (new_not5=MyTrue ==> new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) We simplified constraint (7) using rule (VII) which results in the following new constraint: (13) (Main.Succ(x29)=x38 & Main.Zero=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (14) (new_not5=MyTrue ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (15) (new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (16) (new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_not0(x26, x30)=MyTrue which results in the following new constraints: (17) (new_not1=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile3(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Succ(x31), Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Succ(x31), Main.Neg(Main.Succ(x25))))) (18) (new_not3=MyTrue & Main.Succ(x25)=Main.Succ(x32) ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) (19) (new_not0(x34, x33)=MyTrue & Main.Succ(x25)=Main.Succ(x33) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x33 ==> new_takeWhile3(x34, Main.Neg(Main.Succ(x35)), x36, x37)_>=_new_takeWhile13(x34, Main.Neg(Main.Succ(x35)), x36, x37, new_flip(x34, Main.Neg(Main.Succ(x35))))) ==> new_takeWhile3(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Succ(x34), Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x25))))) (20) (new_not2=MyTrue & Main.Succ(x25)=Main.Zero ==> new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) We solved constraint (17) using rules (I), (II).We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) We simplified constraint (19) using rules (I), (II), (III), (IV) which results in the following new constraint: (22) (new_takeWhile3(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15)_>=_new_takeWhile13(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) We solved constraint (20) using rules (I), (II).We simplified constraint (12) using rule (IV) which results in the following new constraint: (23) (new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: (24) (new_not1=MyTrue & Main.Succ(x29)=Main.Succ(x40) & Main.Zero=Main.Zero ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (25) (new_not3=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Succ(x41) ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (26) (new_not0(x43, x42)=MyTrue & Main.Succ(x29)=Main.Succ(x43) & Main.Zero=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Succ(x44)=x43 & Main.Zero=x42 ==> new_takeWhile3(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46)_>=_new_takeWhile13(Main.Succ(x44), Main.Neg(Main.Zero), x45, x46, new_flip(Main.Succ(x44), Main.Neg(Main.Zero)))) ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) (27) (new_not2=MyTrue & Main.Succ(x29)=Main.Zero & Main.Zero=Main.Zero ==> new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (24) using rules (I), (II), (IV) which results in the following new constraint: (28) (new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) We solved constraint (25) using rules (I), (II).We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: (29) (new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) *(new_takeWhile13(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile3(x4, x7, x6, new_psMyInt1(x6, x7))) *new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) *(new_takeWhile3(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x24), Main.Pos(Main.Zero), x14, x15, new_flip(Main.Succ(x24), Main.Pos(Main.Zero)))) *(new_takeWhile3(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Pos(Main.Zero)))) *(new_takeWhile3(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Succ(x25)), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Succ(x25))))) *(new_takeWhile3(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15)_>=_new_takeWhile13(Main.Succ(x34), Main.Neg(Main.Succ(x33)), x14, x15, new_flip(Main.Succ(x34), Main.Neg(Main.Succ(x33))))) *(new_takeWhile3(x28, Main.Pos(Main.Succ(x27)), x14, x15)_>=_new_takeWhile13(x28, Main.Pos(Main.Succ(x27)), x14, x15, new_flip(x28, Main.Pos(Main.Succ(x27))))) *(new_takeWhile3(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip(Main.Succ(x29), Main.Neg(Main.Zero)))) *(new_takeWhile3(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile13(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip(Main.Zero, Main.Neg(Main.Zero)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (574) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile13(wy7350, wy731, wy732, wy823, MyTrue) -> new_takeWhile3(wy7350, wy823, wy732, new_psMyInt1(wy732, wy823)) new_takeWhile3(wy7350, wy823, wy732, wy838) -> new_takeWhile13(wy7350, wy823, wy732, wy838, new_flip(wy7350, wy823)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not1 new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_flip(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip(wy7350, Main.Neg(Main.Succ(wy82300))) -> new_not0(wy7350, Main.Succ(wy82300)) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_flip(wy7350, Main.Pos(Main.Succ(wy82300))) -> new_not1 new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 new_flip(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not0(Main.Succ(wy73500), Main.Zero) new_flip(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip(Main.Zero, Main.Neg(Main.Zero)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip(Main.Zero, Main.Pos(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_flip(x0, Main.Pos(Main.Succ(x1))) new_psMyInt1(Main.Neg(x0), x1) new_flip(Main.Succ(x0), Main.Neg(Main.Zero)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip(x0, Main.Neg(Main.Succ(x1))) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_primPlusNat1(Main.Zero) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat1(Main.Succ(x0)) new_flip(Main.Succ(x0), Main.Pos(Main.Zero)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (575) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusInt(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt(wy7780, wy777000, wy776) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (576) 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: *new_primPlusInt(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt(wy7780, wy777000, wy776) The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3 ---------------------------------------- (577) YES ---------------------------------------- (578) Obligation: Q DP problem: The TRS P consists of the following rules: new_not6(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not6(wy20000, wy439000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (579) 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: *new_not6(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not6(wy20000, wy439000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (580) YES ---------------------------------------- (581) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNat(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat(wy8240, wy73400) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (582) 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: *new_primMinusNat(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat(wy8240, wy73400) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (583) YES ---------------------------------------- (584) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Main.Succ(wy7780), Main.Succ(wy777000)) -> new_primPlusNat(wy7780, wy777000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (585) 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: *new_primPlusNat(Main.Succ(wy7780), Main.Succ(wy777000)) -> new_primPlusNat(wy7780, wy777000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (586) YES ---------------------------------------- (587) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS(wy7250, wy7260) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (588) 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: *new_primMinusNatS(Main.Succ(wy7250), Main.Succ(wy7260)) -> new_primMinusNatS(wy7250, wy7260) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (589) YES ---------------------------------------- (590) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip0(x0, Main.Pos(Main.Succ(x1))) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip0(x0, Main.Neg(Main.Succ(x1))) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_flip0(Main.Zero, Main.Neg(Main.Zero)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt1(Main.Neg(x0), x1) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_primPlusNat1(Main.Zero) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_flip0(Main.Zero, Main.Pos(Main.Zero)) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (591) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (592) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (593) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) the following chains were created: *We consider the chain new_takeWhile15(x4, x5, x6, x7, MyTrue) -> new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7)), new_takeWhile5(x8, x9, x10, x11) -> new_takeWhile15(x8, x9, x10, x11, new_flip0(x8, x9)) which results in the following constraint: (1) (new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))=new_takeWhile5(x8, x9, x10, x11) ==> new_takeWhile15(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile15(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))) For Pair new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) the following chains were created: *We consider the chain new_takeWhile5(x12, x13, x14, x15) -> new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13)), new_takeWhile15(x16, x17, x18, x19, MyTrue) -> new_takeWhile5(x16, x19, x18, new_psMyInt1(x18, x19)) which results in the following constraint: (1) (new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13))=new_takeWhile15(x16, x17, x18, x19, MyTrue) ==> new_takeWhile5(x12, x13, x14, x15)_>=_new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_flip0(x12, x13)=MyTrue ==> new_takeWhile5(x12, x13, x14, x15)_>=_new_takeWhile15(x12, x13, x14, x15, new_flip0(x12, x13))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip0(x12, x13)=MyTrue which results in the following new constraints: (3) (new_not0(Main.Succ(x24), x25)=MyTrue ==> new_takeWhile5(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) (4) (new_not2=MyTrue ==> new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) (5) (new_not3=MyTrue ==> new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) (6) (new_not2=MyTrue ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) (7) (new_not0(Main.Zero, Main.Succ(x28))=MyTrue ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (8) (new_not3=MyTrue ==> new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (3) using rule (VII) which results in the following new constraint: (9) (Main.Succ(x24)=x30 & new_not0(x30, x25)=MyTrue ==> new_takeWhile5(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (11) (new_not4=MyTrue ==> new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (12) (new_not5=MyTrue ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (7) using rule (VII) which results in the following new constraint: (13) (Main.Zero=x38 & Main.Succ(x28)=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (14) (new_not4=MyTrue ==> new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_not0(x30, x25)=MyTrue which results in the following new constraints: (15) (new_not1=MyTrue & Main.Succ(x24)=Main.Succ(x31) ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) (16) (new_not3=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile5(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x32), Main.Pos(Main.Succ(x24))))) (17) (new_not0(x34, x33)=MyTrue & Main.Succ(x24)=Main.Succ(x34) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x34 ==> new_takeWhile5(x33, Main.Pos(Main.Succ(x35)), x36, x37)_>=_new_takeWhile15(x33, Main.Pos(Main.Succ(x35)), x36, x37, new_flip0(x33, Main.Pos(Main.Succ(x35))))) ==> new_takeWhile5(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x24))))) (18) (new_not2=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) We solved constraint (16) using rules (I), (II).We simplified constraint (17) using rules (I), (II), (III), (IV) which results in the following new constraint: (20) (new_takeWhile5(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile15(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) We solved constraint (18) using rules (I), (II).We simplified constraint (10) using rule (IV) which results in the following new constraint: (21) (new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (11) using rule (IV) which results in the following new constraint: (22) (new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (23) (new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: (24) (new_not1=MyTrue & Main.Zero=Main.Succ(x40) & Main.Succ(x28)=Main.Zero ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (25) (new_not3=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Succ(x41) ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (26) (new_not0(x43, x42)=MyTrue & Main.Zero=Main.Succ(x43) & Main.Succ(x28)=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Zero=x43 & Main.Succ(x44)=x42 ==> new_takeWhile5(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46)_>=_new_takeWhile15(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46, new_flip0(Main.Succ(x44), Main.Pos(Main.Zero)))) ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (27) (new_not2=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Zero ==> new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) We solved constraint (24) using rules (I), (II).We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint: (28) (new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: (29) (new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) *(new_takeWhile15(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile5(x4, x7, x6, new_psMyInt1(x6, x7))) *new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) *(new_takeWhile5(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) *(new_takeWhile5(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile15(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) *(new_takeWhile5(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) *(new_takeWhile5(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile15(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) *(new_takeWhile5(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) *(new_takeWhile5(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) *(new_takeWhile5(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile15(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (594) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile15(wy7350, wy731, wy732, wy821, MyTrue) -> new_takeWhile5(wy7350, wy821, wy732, new_psMyInt1(wy732, wy821)) new_takeWhile5(wy7350, wy821, wy732, wy837) -> new_takeWhile15(wy7350, wy821, wy732, wy837, new_flip0(wy7350, wy821)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip0(x0, Main.Pos(Main.Succ(x1))) new_primPlusInt2(x0, Main.Neg(x1)) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip0(x0, Main.Neg(Main.Succ(x1))) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_flip0(Main.Zero, Main.Neg(Main.Zero)) new_primPlusInt1(x0, Main.Neg(x1)) new_psMyInt1(Main.Neg(x0), x1) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_primPlusNat1(Main.Zero) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_flip0(Main.Zero, Main.Pos(Main.Zero)) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (595) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip0(x0, Main.Pos(Main.Succ(x1))) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip0(x0, Main.Neg(Main.Succ(x1))) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_flip0(Main.Zero, Main.Neg(Main.Zero)) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_flip0(Main.Zero, Main.Pos(Main.Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (596) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (597) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (598) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) the following chains were created: *We consider the chain new_takeWhile14(x4, x5, x6, x7, MyTrue) -> new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7)), new_takeWhile4(x8, x9, x10, x11) -> new_takeWhile14(x8, x9, x10, x11, new_flip0(x8, x9)) which results in the following constraint: (1) (new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))=new_takeWhile4(x8, x9, x10, x11) ==> new_takeWhile14(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_takeWhile14(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))) For Pair new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) the following chains were created: *We consider the chain new_takeWhile4(x12, x13, x14, x15) -> new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13)), new_takeWhile14(x16, x17, x18, x19, MyTrue) -> new_takeWhile4(x16, x19, x18, new_psMyInt0(x18, x19)) which results in the following constraint: (1) (new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13))=new_takeWhile14(x16, x17, x18, x19, MyTrue) ==> new_takeWhile4(x12, x13, x14, x15)_>=_new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_flip0(x12, x13)=MyTrue ==> new_takeWhile4(x12, x13, x14, x15)_>=_new_takeWhile14(x12, x13, x14, x15, new_flip0(x12, x13))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip0(x12, x13)=MyTrue which results in the following new constraints: (3) (new_not0(Main.Succ(x24), x25)=MyTrue ==> new_takeWhile4(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) (4) (new_not2=MyTrue ==> new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) (5) (new_not3=MyTrue ==> new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) (6) (new_not2=MyTrue ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) (7) (new_not0(Main.Zero, Main.Succ(x28))=MyTrue ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (8) (new_not3=MyTrue ==> new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (3) using rule (VII) which results in the following new constraint: (9) (Main.Succ(x24)=x30 & new_not0(x30, x25)=MyTrue ==> new_takeWhile4(x25, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(x25, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(x25, Main.Pos(Main.Succ(x24))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (10) (new_not5=MyTrue ==> new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (11) (new_not4=MyTrue ==> new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not2=MyTrue which results in the following new constraint: (12) (new_not5=MyTrue ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (7) using rule (VII) which results in the following new constraint: (13) (Main.Zero=x38 & Main.Succ(x28)=x39 & new_not0(x38, x39)=MyTrue ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_not3=MyTrue which results in the following new constraint: (14) (new_not4=MyTrue ==> new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_not0(x30, x25)=MyTrue which results in the following new constraints: (15) (new_not1=MyTrue & Main.Succ(x24)=Main.Succ(x31) ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) (16) (new_not3=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile4(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Succ(x32), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x32), Main.Pos(Main.Succ(x24))))) (17) (new_not0(x34, x33)=MyTrue & Main.Succ(x24)=Main.Succ(x34) & (\/x35,x36,x37:new_not0(x34, x33)=MyTrue & Main.Succ(x35)=x34 ==> new_takeWhile4(x33, Main.Pos(Main.Succ(x35)), x36, x37)_>=_new_takeWhile14(x33, Main.Pos(Main.Succ(x35)), x36, x37, new_flip0(x33, Main.Pos(Main.Succ(x35))))) ==> new_takeWhile4(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Succ(x33), Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x24))))) (18) (new_not2=MyTrue & Main.Succ(x24)=Main.Zero ==> new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) We solved constraint (16) using rules (I), (II).We simplified constraint (17) using rules (I), (II), (III), (IV) which results in the following new constraint: (20) (new_takeWhile4(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile14(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) We solved constraint (18) using rules (I), (II).We simplified constraint (10) using rule (IV) which results in the following new constraint: (21) (new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) We simplified constraint (11) using rule (IV) which results in the following new constraint: (22) (new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (23) (new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_not0(x38, x39)=MyTrue which results in the following new constraints: (24) (new_not1=MyTrue & Main.Zero=Main.Succ(x40) & Main.Succ(x28)=Main.Zero ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (25) (new_not3=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Succ(x41) ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (26) (new_not0(x43, x42)=MyTrue & Main.Zero=Main.Succ(x43) & Main.Succ(x28)=Main.Succ(x42) & (\/x44,x45,x46:new_not0(x43, x42)=MyTrue & Main.Zero=x43 & Main.Succ(x44)=x42 ==> new_takeWhile4(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46)_>=_new_takeWhile14(Main.Succ(x44), Main.Pos(Main.Zero), x45, x46, new_flip0(Main.Succ(x44), Main.Pos(Main.Zero)))) ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) (27) (new_not2=MyTrue & Main.Zero=Main.Zero & Main.Succ(x28)=Main.Zero ==> new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) We solved constraint (24) using rules (I), (II).We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint: (28) (new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) We solved constraint (26) using rules (I), (II).We solved constraint (27) using rules (I), (II).We simplified constraint (14) using rule (IV) which results in the following new constraint: (29) (new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) *(new_takeWhile14(x4, x5, x6, x7, MyTrue)_>=_new_takeWhile4(x4, x7, x6, new_psMyInt0(x6, x7))) *new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) *(new_takeWhile4(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Succ(x24)), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Succ(x24))))) *(new_takeWhile4(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15)_>=_new_takeWhile14(Main.Succ(x33), Main.Pos(Main.Succ(x34)), x14, x15, new_flip0(Main.Succ(x33), Main.Pos(Main.Succ(x34))))) *(new_takeWhile4(Main.Zero, Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Neg(Main.Zero)))) *(new_takeWhile4(x27, Main.Neg(Main.Succ(x26)), x14, x15)_>=_new_takeWhile14(x27, Main.Neg(Main.Succ(x26)), x14, x15, new_flip0(x27, Main.Neg(Main.Succ(x26))))) *(new_takeWhile4(Main.Zero, Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Zero, Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Zero, Main.Pos(Main.Zero)))) *(new_takeWhile4(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x28), Main.Pos(Main.Zero), x14, x15, new_flip0(Main.Succ(x28), Main.Pos(Main.Zero)))) *(new_takeWhile4(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15)_>=_new_takeWhile14(Main.Succ(x29), Main.Neg(Main.Zero), x14, x15, new_flip0(Main.Succ(x29), Main.Neg(Main.Zero)))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (599) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile14(wy7530, wy749, wy750, wy829, MyTrue) -> new_takeWhile4(wy7530, wy829, wy750, new_psMyInt0(wy750, wy829)) new_takeWhile4(wy7530, wy829, wy750, wy839) -> new_takeWhile14(wy7530, wy829, wy750, wy839, new_flip0(wy7530, wy829)) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not0(Main.Succ(wy7740), Main.Zero) -> new_not1 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_flip0(wy7350, Main.Pos(Main.Succ(wy82100))) -> new_not0(Main.Succ(wy82100), wy7350) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not0(Main.Zero, Main.Succ(wy773000)) -> new_not3 new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_flip0(Main.Zero, Main.Neg(Main.Zero)) -> new_not2 new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_not3 -> new_not4 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_flip0(wy7350, Main.Neg(Main.Succ(wy82100))) -> new_not3 new_not0(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not0(wy7740, wy773000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_not1 -> new_not5 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip0(Main.Zero, Main.Pos(Main.Zero)) -> new_not2 new_flip0(Main.Succ(wy73500), Main.Pos(Main.Zero)) -> new_not0(Main.Zero, Main.Succ(wy73500)) new_flip0(Main.Succ(wy73500), Main.Neg(Main.Zero)) -> new_not3 new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not2 -> new_not5 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_not0(Main.Zero, Main.Zero) -> new_not2 The set Q consists of the following terms: new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip0(x0, Main.Pos(Main.Succ(x1))) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_not2 new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip0(x0, Main.Neg(Main.Succ(x1))) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip0(Main.Succ(x0), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Zero, Main.Zero) new_flip0(Main.Zero, Main.Neg(Main.Zero)) new_primPlusInt1(x0, Main.Neg(x1)) new_not3 new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not0(Main.Zero, Main.Succ(x0)) new_flip0(Main.Succ(x0), Main.Pos(Main.Zero)) new_not0(Main.Succ(x0), Main.Zero) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_not1 new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_not0(Main.Zero, Main.Zero) new_primPlusInt2(x0, Main.Pos(x1)) new_not5 new_not0(Main.Succ(x0), Main.Succ(x1)) new_flip0(Main.Zero, Main.Pos(Main.Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (600) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(wy735, wy731, wy732, wy733, wy734, MyTrue) -> new_takeWhile112(wy735, new_psMyInt1(wy733, wy734), wy732, wy732, new_psMyInt1(wy733, wy734), new_flip1(wy735, new_psMyInt1(wy733, wy734))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (601) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(wy735, wy731, wy732, wy733, wy734, MyTrue) -> new_takeWhile112(wy735, new_psMyInt1(wy733, wy734), wy732, wy732, new_psMyInt1(wy733, wy734), new_flip1(wy735, new_psMyInt1(wy733, wy734))) we obtained the following new rules [LPAR04]: (new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))),new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1)))) ---------------------------------------- (602) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_not4 -> MyFalse new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (603) 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. ---------------------------------------- (604) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (605) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile112(z0, new_psMyInt1(z2, y_1), z2, z2, new_psMyInt1(z2, y_1), new_flip1(z0, new_psMyInt1(z2, y_1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))),new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1)))) (new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))),new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1)))) ---------------------------------------- (606) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (607) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (608) Complex Obligation (AND) ---------------------------------------- (609) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (610) 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. ---------------------------------------- (611) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (612) 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]. new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (613) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (614) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))),new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1)))) ---------------------------------------- (615) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (616) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt1(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))),new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1)))) ---------------------------------------- (617) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (618) 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. ---------------------------------------- (619) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (620) 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]. new_psMyInt1(Main.Neg(x0), x1) new_psMyInt1(Main.Pos(x0), x1) ---------------------------------------- (621) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (622) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(x0), x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt1(new_primPlusNat1(x0), x1), new_flip1(y0, new_primPlusInt1(new_primPlusNat1(x0), x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1))))) (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3)))) ---------------------------------------- (623) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (624) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1))))) ---------------------------------------- (625) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (626) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1)))) ---------------------------------------- (627) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (628) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3)))) ---------------------------------------- (629) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (630) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3)))) ---------------------------------------- (631) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (632) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1))))) ---------------------------------------- (633) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (634) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primPlusInt1(new_primPlusNat1(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1)))) ---------------------------------------- (635) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (636) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3)))) ---------------------------------------- (637) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (638) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3)))) ---------------------------------------- (639) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (640) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), Main.Neg(y2), Main.Neg(y2), Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (641) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (642) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) ---------------------------------------- (643) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (644) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (645) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (646) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Zero), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) ---------------------------------------- (647) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (648) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(new_primPlusNat1(Main.Succ(x0)), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (649) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (650) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(y2), Main.Neg(y2), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(y2), x1), Main.Neg(y2), Main.Neg(y2), new_primMinusNat0(new_primPlusNat1(y2), x1), new_flip1(y0, new_primMinusNat0(new_primPlusNat1(y2), x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) ---------------------------------------- (651) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (652) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (653) Complex Obligation (AND) ---------------------------------------- (654) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (655) 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. ---------------------------------------- (656) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (657) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) ---------------------------------------- (658) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (659) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(new_primPlusNat1(Main.Succ(x0)), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) ---------------------------------------- (660) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (661) 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. ---------------------------------------- (662) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (663) 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]. new_primPlusNat1(Main.Zero) new_primPlusNat1(Main.Succ(x0)) ---------------------------------------- (664) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (665) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), y3))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) ---------------------------------------- (666) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (667) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (668) Complex Obligation (AND) ---------------------------------------- (669) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (670) 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. ---------------------------------------- (671) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (672) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (673) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (674) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (675) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (676) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (677) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (678) 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. ---------------------------------------- (679) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (680) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (681) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (682) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), y3)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (683) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (684) 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. ---------------------------------------- (685) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (686) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (687) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (688) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (689) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (690) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (691) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (692) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (693) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (694) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (695) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (696) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: *We consider the chain new_takeWhile112(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile112(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) -> new_takeWhile112(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: (1) (new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile112(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) ==> new_takeWhile112(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile112(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: (3) (new_not8=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x9)) ==> new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (4) (new_not7(x11, x12)=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x11)) ==> new_takeWhile112(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not8=MyTrue ==> new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_not7(x11, x12)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile112(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (7) (new_not4=MyTrue ==> new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x11, x12)=MyTrue which results in the following new constraints: (9) (new_not12(x14, x13)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile112(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (10) (new_not8=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x15 ==> new_takeWhile112(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile112(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile112(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) *(new_takeWhile112(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile112(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile112(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (697) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (698) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (699) 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. ---------------------------------------- (700) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (701) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (702) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (703) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) ---------------------------------------- (704) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (705) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3)))) ---------------------------------------- (706) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (707) 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. ---------------------------------------- (708) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (709) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (710) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (711) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), y3), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(Main.Succ(x0), y3), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), y3))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (712) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (713) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (714) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (715) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (716) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (717) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (718) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (720) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (721) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (722) Complex Obligation (AND) ---------------------------------------- (723) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (724) 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. ---------------------------------------- (725) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (726) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (727) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (728) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (729) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (730) 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. ---------------------------------------- (731) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (732) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (733) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (734) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (735) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (736) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (737) Complex Obligation (AND) ---------------------------------------- (738) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (739) 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. ---------------------------------------- (740) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (741) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (742) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (743) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) ---------------------------------------- (744) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (745) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (746) YES ---------------------------------------- (747) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (748) 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. ---------------------------------------- (749) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (750) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (751) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (752) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (753) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (754) 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. ---------------------------------------- (755) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (756) 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]. new_not11 ---------------------------------------- (757) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (758) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (759) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (760) 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. ---------------------------------------- (761) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (762) 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]. new_not5 ---------------------------------------- (763) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (764) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue)) ---------------------------------------- (765) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (766) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Pos(x1) = Main.Pos Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (767) YES ---------------------------------------- (768) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (769) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (770) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (771) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (772) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (773) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (774) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (775) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (776) Complex Obligation (AND) ---------------------------------------- (777) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (778) 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. ---------------------------------------- (779) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (780) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (781) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (782) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (783) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (784) 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. ---------------------------------------- (785) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (786) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (787) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (788) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (789) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (790) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (791) Complex Obligation (AND) ---------------------------------------- (792) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (793) 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. ---------------------------------------- (794) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (795) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (796) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (797) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) ---------------------------------------- (798) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (799) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (800) YES ---------------------------------------- (801) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (802) 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. ---------------------------------------- (803) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (804) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (805) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (806) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (807) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (808) 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. ---------------------------------------- (809) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (810) 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]. new_not11 ---------------------------------------- (811) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (812) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (813) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (814) 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. ---------------------------------------- (815) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (816) 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]. new_not5 ---------------------------------------- (817) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (818) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue)) ---------------------------------------- (819) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (820) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Pos(x1) = Main.Pos Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (821) YES ---------------------------------------- (822) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (823) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (824) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (825) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (826) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (827) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (828) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (829) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (830) Complex Obligation (AND) ---------------------------------------- (831) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (832) 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. ---------------------------------------- (833) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (834) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (835) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (836) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (837) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (838) 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. ---------------------------------------- (839) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (840) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (841) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (842) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (843) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (844) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (845) Complex Obligation (AND) ---------------------------------------- (846) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (847) 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. ---------------------------------------- (848) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (849) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (850) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (851) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) ---------------------------------------- (852) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (853) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (854) YES ---------------------------------------- (855) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (856) 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. ---------------------------------------- (857) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (858) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (859) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (860) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (861) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (862) 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. ---------------------------------------- (863) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (864) 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]. new_not11 ---------------------------------------- (865) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (866) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (867) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (868) 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. ---------------------------------------- (869) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (870) 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]. new_not5 ---------------------------------------- (871) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (872) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue)) ---------------------------------------- (873) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (874) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Pos(x1) = Main.Pos Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (875) YES ---------------------------------------- (876) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (877) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (878) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (879) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (880) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (881) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (882) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (883) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (884) Complex Obligation (AND) ---------------------------------------- (885) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (886) 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. ---------------------------------------- (887) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (888) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (889) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (890) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (891) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (892) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (893) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (894) 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. ---------------------------------------- (895) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (896) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (897) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (898) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))),new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2))))) ---------------------------------------- (899) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (900) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (901) YES ---------------------------------------- (902) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (903) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (904) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (905) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (906) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (907) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(MyTrue) = 1 POL(new_primMinusNat0(x_1, x_2)) = x_2 From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) ---------------------------------------- (908) YES ---------------------------------------- (909) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (910) 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. ---------------------------------------- (911) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (912) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) ---------------------------------------- (913) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (914) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(new_primPlusNat1(Main.Zero), y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) ---------------------------------------- (915) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat1(Main.Zero) -> Main.Zero new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (916) 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. ---------------------------------------- (917) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (918) 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]. new_primPlusNat1(Main.Zero) new_primPlusNat1(Main.Succ(x0)) ---------------------------------------- (919) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (920) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), y3, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, y3), new_flip1(y0, new_primPlusInt1(Main.Zero, y3))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (921) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (922) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (923) Complex Obligation (AND) ---------------------------------------- (924) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (925) 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. ---------------------------------------- (926) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (927) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (928) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (929) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (930) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (931) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3))))) ---------------------------------------- (932) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (933) 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. ---------------------------------------- (934) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (935) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (936) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (937) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, y3)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (938) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (939) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (940) Complex Obligation (AND) ---------------------------------------- (941) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (942) 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. ---------------------------------------- (943) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (944) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (945) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (946) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (947) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (948) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (949) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (950) 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. ---------------------------------------- (951) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (952) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (953) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (954) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))),new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2))))) ---------------------------------------- (955) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (956) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) the following chains were created: *We consider the chain new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1)))), new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), new_flip1(x2, Main.Pos(Main.Succ(x3)))) which results in the following constraint: (1) (new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))=new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Pos(Main.Succ(x1))=x4 & new_flip1(x0, x4)=MyTrue ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x4)=MyTrue which results in the following new constraints: (3) (new_not8=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x5)) ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) (4) (new_not7(x7, x8)=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x7)) ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x1))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not8=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (4) using rules (I), (II), (III) which results in the following new constraint: (6) (new_not7(x7, x8)=MyTrue ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x7))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (7) (new_not4=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x7, x8)=MyTrue which results in the following new constraints: (9) (new_not12(x10, x9)=MyTrue ==> new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) (10) (new_not8=MyTrue ==> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) *(new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) *(new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) *(new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (957) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (958) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (959) 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. ---------------------------------------- (960) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (961) 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]. new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) ---------------------------------------- (962) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (963) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (964) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (965) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (966) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (967) 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. ---------------------------------------- (968) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (969) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (970) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (971) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) (new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8)) (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) ---------------------------------------- (972) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8) new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (973) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (974) Complex Obligation (AND) ---------------------------------------- (975) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (976) 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. ---------------------------------------- (977) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (978) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (979) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (980) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (981) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (982) 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. ---------------------------------------- (983) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (984) 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]. new_not10 ---------------------------------------- (985) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (986) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (987) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (988) 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. ---------------------------------------- (989) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (990) 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]. new_not5 ---------------------------------------- (991) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (992) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (993) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (994) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (995) NO ---------------------------------------- (996) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (997) 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. ---------------------------------------- (998) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (999) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1000) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1001) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11)) ---------------------------------------- (1002) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1003) 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. ---------------------------------------- (1004) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1005) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1006) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1007) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1008) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1009) 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. ---------------------------------------- (1010) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1011) 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]. new_not11 ---------------------------------------- (1012) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1013) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1014) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1015) 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. ---------------------------------------- (1016) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1017) 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]. new_not5 ---------------------------------------- (1018) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1019) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1020) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1021) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1022) NO ---------------------------------------- (1023) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1024) 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. ---------------------------------------- (1025) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1026) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (1027) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1028) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1029) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1030) 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. ---------------------------------------- (1031) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1032) 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]. new_not10 ---------------------------------------- (1033) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1034) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1035) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1036) 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. ---------------------------------------- (1037) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1038) 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]. new_not5 ---------------------------------------- (1039) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1040) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1041) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1042) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1043) NO ---------------------------------------- (1044) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1045) 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. ---------------------------------------- (1046) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1047) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1048) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1049) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (1050) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1051) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3)))) ---------------------------------------- (1052) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1053) 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. ---------------------------------------- (1054) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1055) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (1056) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1057) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, y3), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, y3), new_flip1(y0, new_primMinusNat0(Main.Zero, y3))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (1058) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1059) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1060) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1061) 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. ---------------------------------------- (1062) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1063) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (1064) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1065) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1066) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1067) 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. ---------------------------------------- (1068) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1069) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (1070) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1071) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (1072) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1073) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1074) Complex Obligation (AND) ---------------------------------------- (1075) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1076) 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. ---------------------------------------- (1077) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1078) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1079) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1080) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2))) ---------------------------------------- (1081) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1082) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (1083) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (1084) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, wy2000)) evaluates to t =new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [z0 / Main.Zero, wy2000 / z2] -------------------------------------------------------------------------------- Rewriting sequence new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) with rule new_not9(Main.Zero, wy2000) -> new_not11 at position [5] and matcher [wy2000 / z2] new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) with rule new_not11 -> new_not5 at position [5] and matcher [ ] new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) with rule new_not5 -> MyTrue at position [5] and matcher [ ] new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) with rule new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (1085) NO ---------------------------------------- (1086) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1087) 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. ---------------------------------------- (1088) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1089) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1090) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1091) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (1092) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1093) 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. ---------------------------------------- (1094) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1095) 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]. new_not11 ---------------------------------------- (1096) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1097) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (1098) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1099) 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. ---------------------------------------- (1100) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1101) 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]. new_not5 ---------------------------------------- (1102) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1103) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue)) ---------------------------------------- (1104) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1105) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) to new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue). ---------------------------------------- (1106) NO ---------------------------------------- (1107) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_psMyInt1(Main.Neg(wy7330), wy734) -> new_primPlusInt1(new_primPlusNat1(wy7330), wy734) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat1(Main.Zero) -> Main.Zero new_primPlusNat1(Main.Succ(wy73300)) -> Main.Succ(wy73300) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1108) 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. ---------------------------------------- (1109) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_primPlusNat1(Main.Zero) new_not5 new_not9(Main.Succ(x0), x1) new_primPlusNat1(Main.Succ(x0)) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1110) 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]. new_primPlusNat1(Main.Zero) new_primPlusNat1(Main.Succ(x0)) ---------------------------------------- (1111) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1112) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_psMyInt1(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))),new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1)))) ---------------------------------------- (1113) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1114) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt1(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))),new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1)))) ---------------------------------------- (1115) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_psMyInt1(Main.Pos(wy7330), wy734) -> new_primPlusInt0(Main.Zero, wy7330, wy734) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1116) 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. ---------------------------------------- (1117) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_psMyInt1(Main.Neg(x0), x1) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) new_psMyInt1(Main.Pos(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1118) 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]. new_psMyInt1(Main.Neg(x0), x1) new_psMyInt1(Main.Pos(x0), x1) ---------------------------------------- (1119) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1120) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, x0, x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt0(Main.Zero, x0, x1), new_flip1(y0, new_primPlusInt0(Main.Zero, x0, x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) ---------------------------------------- (1121) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1122) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1123) Complex Obligation (AND) ---------------------------------------- (1124) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1125) 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. ---------------------------------------- (1126) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1127) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1128) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1129) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) ---------------------------------------- (1130) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1131) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) ---------------------------------------- (1132) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1133) 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. ---------------------------------------- (1134) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1135) 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]. new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) ---------------------------------------- (1136) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1137) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), x0, MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, x0), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (1138) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1139) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1140) Complex Obligation (AND) ---------------------------------------- (1141) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1142) 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. ---------------------------------------- (1143) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1144) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (1145) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1146) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (1147) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1148) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (1149) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1150) 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. ---------------------------------------- (1151) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1152) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (1153) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1154) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1155) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1156) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1157) Complex Obligation (AND) ---------------------------------------- (1158) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1159) 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. ---------------------------------------- (1160) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1161) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1162) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1163) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1164) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1166) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1167) 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. ---------------------------------------- (1168) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1169) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1170) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1171) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))),new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2))))) ---------------------------------------- (1172) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1173) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) the following chains were created: *We consider the chain new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1)))), new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), new_flip1(x2, Main.Pos(Main.Succ(x3)))) which results in the following constraint: (1) (new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))=new_takeWhile112(x2, Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Pos(Main.Succ(x1))=x4 & new_flip1(x0, x4)=MyTrue ==> new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(x0, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x4)=MyTrue which results in the following new constraints: (3) (new_not8=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x5)) ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) (4) (new_not7(x7, x8)=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x7)) ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x1))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not8=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (4) using rules (I), (II), (III) which results in the following new constraint: (6) (new_not7(x7, x8)=MyTrue ==> new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x7)), MyTrue)_>=_new_takeWhile112(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x7)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x7))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (7) (new_not4=MyTrue ==> new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x7, x8)=MyTrue which results in the following new constraints: (9) (new_not12(x10, x9)=MyTrue ==> new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) (10) (new_not8=MyTrue ==> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) *(new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile112(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) *(new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) *(new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1174) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1175) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1176) 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. ---------------------------------------- (1177) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1178) 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]. new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) ---------------------------------------- (1179) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1180) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (1181) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1182) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (1183) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1184) 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. ---------------------------------------- (1185) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1186) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1187) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1188) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) (new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8)) (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) ---------------------------------------- (1189) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) new_takeWhile112(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8) new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1190) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1191) Complex Obligation (AND) ---------------------------------------- (1192) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1193) 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. ---------------------------------------- (1194) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1195) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (1196) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1197) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1198) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1199) 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. ---------------------------------------- (1200) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1201) 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]. new_not10 ---------------------------------------- (1202) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1203) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1204) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1205) 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. ---------------------------------------- (1206) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1207) 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]. new_not5 ---------------------------------------- (1208) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1209) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1210) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1211) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1212) NO ---------------------------------------- (1213) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1214) 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. ---------------------------------------- (1215) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1216) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1217) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1218) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11)) ---------------------------------------- (1219) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1220) 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. ---------------------------------------- (1221) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1222) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1223) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1224) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1225) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1226) 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. ---------------------------------------- (1227) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1228) 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]. new_not11 ---------------------------------------- (1229) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1230) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1231) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1232) 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. ---------------------------------------- (1233) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1234) 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]. new_not5 ---------------------------------------- (1235) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1236) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1237) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1238) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1239) NO ---------------------------------------- (1240) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1241) 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. ---------------------------------------- (1242) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1243) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (1244) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1245) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1246) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1247) 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. ---------------------------------------- (1248) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1249) 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]. new_not10 ---------------------------------------- (1250) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1251) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1252) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1253) 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. ---------------------------------------- (1254) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1255) 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]. new_not5 ---------------------------------------- (1256) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1257) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1258) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1259) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile112(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1260) NO ---------------------------------------- (1261) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1262) 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. ---------------------------------------- (1263) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1264) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1265) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1266) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (1267) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1268) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (1269) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1270) 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. ---------------------------------------- (1271) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1272) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (1273) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1274) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, x1), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (1275) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1276) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1277) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1278) 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. ---------------------------------------- (1279) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1280) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (1281) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1282) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1283) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1284) 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. ---------------------------------------- (1285) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1286) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (1287) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1288) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (1289) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1290) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1291) Complex Obligation (AND) ---------------------------------------- (1292) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1293) 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. ---------------------------------------- (1294) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1295) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1296) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1297) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)),new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2))) ---------------------------------------- (1298) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1299) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (1300) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (1301) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, wy2000)) evaluates to t =new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [z0 / Main.Zero, wy2000 / z2] -------------------------------------------------------------------------------- Rewriting sequence new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) with rule new_not9(Main.Zero, wy2000) -> new_not11 at position [5] and matcher [wy2000 / z2] new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) with rule new_not11 -> new_not5 at position [5] and matcher [ ] new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) with rule new_not5 -> MyTrue at position [5] and matcher [ ] new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) with rule new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (1302) NO ---------------------------------------- (1303) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1304) 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. ---------------------------------------- (1305) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1306) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1307) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1308) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (1309) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1310) 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. ---------------------------------------- (1311) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1312) 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]. new_not11 ---------------------------------------- (1313) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1314) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (1315) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1316) 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. ---------------------------------------- (1317) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1318) 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]. new_not5 ---------------------------------------- (1319) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1320) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue),new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue)) ---------------------------------------- (1321) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1322) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) evaluates to t =new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) to new_takeWhile112(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue). ---------------------------------------- (1323) NO ---------------------------------------- (1324) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1325) 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. ---------------------------------------- (1326) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1327) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (1328) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1329) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1)))) ---------------------------------------- (1330) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1331) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt0(Main.Zero, Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1)))) ---------------------------------------- (1332) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1333) 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. ---------------------------------------- (1334) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1335) 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]. new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) ---------------------------------------- (1336) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1337) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(x0), x1), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (1338) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1339) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1340) Complex Obligation (AND) ---------------------------------------- (1341) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1342) 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. ---------------------------------------- (1343) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1344) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (1345) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1346) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (1347) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1348) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (1349) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1350) 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. ---------------------------------------- (1351) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1352) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1353) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1354) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1355) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1356) 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. ---------------------------------------- (1357) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1358) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (1359) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1360) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (1361) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1362) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1363) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1364) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (1365) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1366) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1367) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1368) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: *We consider the chain new_takeWhile112(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue) -> new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile112(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) -> new_takeWhile112(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: (1) (new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile112(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) ==> new_takeWhile112(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile112(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: (3) (new_not11=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x9)) ==> new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (4) (new_not9(x12, x11)=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x11)) ==> new_takeWhile112(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not11=MyTrue ==> new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_not9(x12, x11)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile112(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not9(x12, x11)=MyTrue which results in the following new constraints: (9) (new_not11=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x13 ==> new_takeWhile112(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (10) (new_not12(x15, x14)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile112(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile112(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile112(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) *(new_takeWhile112(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile112(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile112(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile112(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1369) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile112(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1370) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1371) 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. ---------------------------------------- (1372) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1373) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1374) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1375) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) ---------------------------------------- (1376) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1377) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) ---------------------------------------- (1378) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1379) 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. ---------------------------------------- (1380) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1381) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1382) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1383) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (1384) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1385) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1386) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1387) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1388) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1389) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1390) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1391) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1392) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1393) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1394) Complex Obligation (AND) ---------------------------------------- (1395) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1396) 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. ---------------------------------------- (1397) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1398) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1399) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1400) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1401) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1402) 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. ---------------------------------------- (1403) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1404) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1405) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1406) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1407) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1408) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1409) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1410) 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. ---------------------------------------- (1411) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1412) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1413) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1414) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) ---------------------------------------- (1415) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1416) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1417) YES ---------------------------------------- (1418) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1419) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1420) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1421) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1422) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1423) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1424) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1425) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1426) Complex Obligation (AND) ---------------------------------------- (1427) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1428) 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. ---------------------------------------- (1429) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1430) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1431) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1432) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1433) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1434) 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. ---------------------------------------- (1435) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1436) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1437) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1438) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1439) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1440) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1441) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1442) 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. ---------------------------------------- (1443) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1444) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1445) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1446) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) ---------------------------------------- (1447) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1448) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1449) YES ---------------------------------------- (1450) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1451) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1452) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1453) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1454) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1455) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1456) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1457) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1458) Complex Obligation (AND) ---------------------------------------- (1459) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1460) 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. ---------------------------------------- (1461) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1462) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1463) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1464) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1465) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1466) 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. ---------------------------------------- (1467) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1468) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1469) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1470) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1471) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1472) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1473) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1474) 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. ---------------------------------------- (1475) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1476) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1477) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1478) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile112(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) ---------------------------------------- (1479) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1480) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile112(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1481) YES ---------------------------------------- (1482) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1483) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1484) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1485) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1486) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1487) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1488) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1489) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1490) Complex Obligation (AND) ---------------------------------------- (1491) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1492) 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. ---------------------------------------- (1493) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1494) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1495) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1496) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1497) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1498) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1499) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1500) 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. ---------------------------------------- (1501) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1502) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (1503) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1504) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))),new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2))))) ---------------------------------------- (1505) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1506) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile112(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1507) YES ---------------------------------------- (1508) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1509) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1510) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1511) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1512) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1513) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = 0 POL(Main.Pos(x_1)) = x_1 POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(MyTrue) = 1 POL(new_primMinusNat0(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_takeWhile112(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile112(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) ---------------------------------------- (1514) YES ---------------------------------------- (1515) Obligation: Q DP problem: The TRS P consists of the following rules: new_map(Cons(wy130, wy131)) -> new_map(wy131) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1516) 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: *new_map(Cons(wy130, wy131)) -> new_map(wy131) The graph contains the following edges 1 > 1 ---------------------------------------- (1517) YES ---------------------------------------- (1518) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile114(wy724, wy725, wy726, Main.Succ(wy7270), Main.Succ(wy7280), wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) -> new_takeWhile114(wy724, wy725, wy726, wy7270, wy7280, wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1519) 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: *new_takeWhile114(wy724, wy725, wy726, Main.Succ(wy7270), Main.Succ(wy7280), wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) -> new_takeWhile114(wy724, wy725, wy726, wy7270, wy7280, wy729, wy730, wy731, wy732, wy733, wy734, wy735, wy736, wy737, wy738, h) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4, 5 > 5, 6 >= 6, 7 >= 7, 8 >= 8, 9 >= 9, 10 >= 10, 11 >= 11, 12 >= 12, 13 >= 13, 14 >= 14, 15 >= 15, 16 >= 16 ---------------------------------------- (1520) YES ---------------------------------------- (1521) Obligation: Q DP problem: The TRS P consists of the following rules: new_not(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not(wy7740, wy773000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1522) 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: *new_not(Main.Succ(wy7740), Main.Succ(wy773000)) -> new_not(wy7740, wy773000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (1523) YES ---------------------------------------- (1524) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(wy753, wy749, wy750, wy751, wy752, MyTrue) -> new_takeWhile19(wy753, new_psMyInt0(wy751, wy752), wy750, wy750, new_psMyInt0(wy751, wy752), new_flip1(wy753, new_psMyInt0(wy751, wy752))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1525) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(wy753, wy749, wy750, wy751, wy752, MyTrue) -> new_takeWhile19(wy753, new_psMyInt0(wy751, wy752), wy750, wy750, new_psMyInt0(wy751, wy752), new_flip1(wy753, new_psMyInt0(wy751, wy752))) we obtained the following new rules [LPAR04]: (new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))),new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1)))) ---------------------------------------- (1526) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not9(Main.Zero, wy2000) -> new_not11 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_not10 -> new_not5 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_not11 -> new_not5 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_not4 -> MyFalse new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_not7(wy2000, Main.Zero) -> new_not8 new_not5 -> MyTrue new_primPlusInt0(Main.Succ(wy7780), Main.Succ(wy777000), wy776) -> new_primPlusInt0(wy7780, wy777000, wy776) new_primPlusInt0(Main.Zero, Main.Succ(wy777000), wy776) -> new_primPlusInt2(Main.Succ(wy777000), wy776) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_not8 -> new_not4 new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1527) 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. ---------------------------------------- (1528) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1529) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(z0, y_0, z2, z2, y_1, MyTrue) -> new_takeWhile19(z0, new_psMyInt0(z2, y_1), z2, z2, new_psMyInt0(z2, y_1), new_flip1(z0, new_psMyInt0(z2, y_1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1)))) (new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))),new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1)))) ---------------------------------------- (1530) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1531) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1532) Complex Obligation (AND) ---------------------------------------- (1533) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1534) 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. ---------------------------------------- (1535) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1536) 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]. new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (1537) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1538) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Pos(x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))),new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1)))) ---------------------------------------- (1539) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1540) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_psMyInt0(Main.Pos(x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))),new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1)))) ---------------------------------------- (1541) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1542) 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. ---------------------------------------- (1543) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1544) 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]. new_psMyInt0(Main.Neg(x0), x1) new_psMyInt0(Main.Pos(x0), x1) ---------------------------------------- (1545) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1546) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(x0), Main.Pos(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), Main.Pos(x0), Main.Pos(x0), new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1), new_flip1(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, x0), x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2))))) (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3)))) ---------------------------------------- (1547) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1548) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2))))) ---------------------------------------- (1549) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1550) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1))))) ---------------------------------------- (1551) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1552) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3)))) ---------------------------------------- (1553) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1554) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3)))) ---------------------------------------- (1555) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1556) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2))))) ---------------------------------------- (1557) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1558) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), new_primPlusInt2(new_primPlusNat0(Main.Zero, y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1))))) ---------------------------------------- (1559) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1560) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Zero), y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3)))) ---------------------------------------- (1561) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1562) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3)))) ---------------------------------------- (1563) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1564) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), Main.Pos(y2), Main.Pos(y2), new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)), new_flip1(y0, new_primMinusNat0(x1, new_primPlusNat0(Main.Zero, y2)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) ---------------------------------------- (1565) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1566) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) at position [1,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) ---------------------------------------- (1567) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1568) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) at position [1,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) ---------------------------------------- (1569) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1570) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) at position [4,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) ---------------------------------------- (1571) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1572) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) at position [4,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) ---------------------------------------- (1573) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1574) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(y2), Main.Pos(y2), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), Main.Pos(y2), Main.Pos(y2), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (1575) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1576) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1577) Complex Obligation (AND) ---------------------------------------- (1578) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1579) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (1580) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1581) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Succ(x0)), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (1582) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1583) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(x0), y3), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primPlusInt2(Main.Succ(x0), y3), new_flip1(y0, new_primPlusInt2(Main.Succ(x0), y3))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (1584) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1585) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1586) Complex Obligation (AND) ---------------------------------------- (1587) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1588) 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. ---------------------------------------- (1589) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1590) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (1591) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1592) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (1593) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1594) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3))))) ---------------------------------------- (1595) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1596) 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. ---------------------------------------- (1597) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1598) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1599) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1600) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), y3)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1601) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1602) 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. ---------------------------------------- (1603) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1604) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (1605) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1606) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (1607) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1608) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1609) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1610) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (1611) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1612) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1613) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1614) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: *We consider the chain new_takeWhile19(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue) -> new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile19(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) -> new_takeWhile19(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: (1) (new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile19(x4, x5, Main.Pos(Main.Succ(x6)), Main.Pos(Main.Succ(x6)), Main.Neg(Main.Succ(x7)), MyTrue) ==> new_takeWhile19(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile19(x0, x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: (3) (new_not11=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x9)) ==> new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (4) (new_not9(x12, x11)=MyTrue & Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Neg(Main.Succ(x11)) ==> new_takeWhile19(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not11=MyTrue ==> new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_not9(x12, x11)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile19(Main.Neg(x12), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x12), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not11=MyTrue which results in the following new constraint: (7) (new_not5=MyTrue ==> new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not9(x12, x11)=MyTrue which results in the following new constraints: (9) (new_not11=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x13 ==> new_takeWhile19(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (10) (new_not12(x15, x14)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile19(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile19(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile19(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) *(new_takeWhile19(Main.Pos(x10), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x10), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile19(Main.Neg(Main.Zero), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile19(Main.Neg(Main.Succ(x15)), x1, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(Main.Succ(x15)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1615) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Neg(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1616) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1617) 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. ---------------------------------------- (1618) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1619) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1620) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1621) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2))))) ---------------------------------------- (1622) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1623) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primPlusInt2(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Succ(y2)), Main.Pos(Main.Succ(y2)), Main.Pos(Main.Succ(y2)), new_primMinusNat0(x1, Main.Succ(y2)), new_flip1(y0, new_primMinusNat0(x1, Main.Succ(y2)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0))))) ---------------------------------------- (1624) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1625) 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. ---------------------------------------- (1626) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1627) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1628) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1629) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_primMinusNat0(y3, Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(y3, Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (1630) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1631) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1632) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1633) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1634) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1635) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1636) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1637) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(x1)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1638) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1639) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1640) Complex Obligation (AND) ---------------------------------------- (1641) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1642) 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. ---------------------------------------- (1643) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1644) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1645) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1646) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1647) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1648) 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. ---------------------------------------- (1649) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1650) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1651) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1652) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1653) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1654) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1655) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1656) 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. ---------------------------------------- (1657) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1658) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1659) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1660) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) ---------------------------------------- (1661) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1662) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(x2))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1663) YES ---------------------------------------- (1664) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1665) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1666) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1667) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1668) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1669) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(x1))), Main.Pos(Main.Succ(Main.Succ(x1))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1670) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1671) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1672) Complex Obligation (AND) ---------------------------------------- (1673) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1674) 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. ---------------------------------------- (1675) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1676) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1677) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1678) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1679) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1680) 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. ---------------------------------------- (1681) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1682) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1683) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1684) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1685) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1686) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1687) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1688) 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. ---------------------------------------- (1689) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1690) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1691) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1692) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) ---------------------------------------- (1693) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1694) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1695) YES ---------------------------------------- (1696) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1697) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1698) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1699) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1700) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1701) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(x1)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1702) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1703) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1704) Complex Obligation (AND) ---------------------------------------- (1705) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1706) 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. ---------------------------------------- (1707) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1708) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1709) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1710) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1711) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1712) 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. ---------------------------------------- (1713) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1714) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1715) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1716) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1717) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1718) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1719) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1720) 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. ---------------------------------------- (1721) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1722) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1723) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1724) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0))) ---------------------------------------- (1725) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1726) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Succ(x2)), new_not7(x2, z0)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1727) YES ---------------------------------------- (1728) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1729) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (1730) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1731) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1732) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1733) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1734) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1735) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (1736) Complex Obligation (AND) ---------------------------------------- (1737) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1738) 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. ---------------------------------------- (1739) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1740) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1741) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1742) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1743) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1744) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1745) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1746) 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. ---------------------------------------- (1747) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1748) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (1749) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1750) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))),new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2))))) ---------------------------------------- (1751) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1752) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Pos(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(z0, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Pos(Main.Succ(x2)), new_flip1(z0, Main.Pos(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (1753) YES ---------------------------------------- (1754) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1755) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1756) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1757) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (1758) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1759) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = 0 POL(Main.Pos(x_1)) = x_1 POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(MyTrue) = 1 POL(new_primMinusNat0(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(y0, y1, Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), Main.Pos(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) ---------------------------------------- (1760) YES ---------------------------------------- (1761) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1762) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) ---------------------------------------- (1763) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1764) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(new_primPlusNat0(Main.Zero, Main.Zero), y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) at position [4,0,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) ---------------------------------------- (1765) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1766) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), y3, MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, y3), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, y3), new_flip1(y0, new_primPlusInt2(Main.Zero, y3))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (1767) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1768) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1769) Complex Obligation (AND) ---------------------------------------- (1770) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1771) 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. ---------------------------------------- (1772) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1773) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (1774) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1775) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Neg(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (1776) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1777) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Neg(x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3))))) ---------------------------------------- (1778) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1779) 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. ---------------------------------------- (1780) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1781) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1782) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1783) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(y3), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, y3)), new_flip1(y0, Main.Neg(new_primPlusNat0(Main.Zero, y3)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1784) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1785) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1786) Complex Obligation (AND) ---------------------------------------- (1787) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1788) 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. ---------------------------------------- (1789) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1790) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (1791) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1792) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1793) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1794) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (1795) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1796) 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. ---------------------------------------- (1797) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1798) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1799) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1800) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))),new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2))))) ---------------------------------------- (1801) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1802) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000)))) evaluates to t =new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [z0 / Main.Pos(wy4390), wy2000 / z2] -------------------------------------------------------------------------------- Rewriting sequence new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)))) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) with rule new_flip1(Main.Pos(wy4390'), Main.Neg(Main.Succ(wy2000))) -> new_not11 at position [5] and matcher [wy4390' / wy4390, wy2000 / z2] new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) with rule new_not11 -> new_not5 at position [5] and matcher [ ] new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) with rule new_not5 -> MyTrue at position [5] and matcher [ ] new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(z2)))) with rule new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Succ(z2)), new_flip1(z0, Main.Neg(Main.Succ(z2)))) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (1803) NO ---------------------------------------- (1804) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1805) 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. ---------------------------------------- (1806) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1807) 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]. new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1808) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1809) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero)))) ---------------------------------------- (1810) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1811) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Neg(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero)))) ---------------------------------------- (1812) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1813) 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. ---------------------------------------- (1814) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1815) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1816) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1817) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_flip1(y0, Main.Neg(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10)) (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10)) (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11)) (new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not7(x0, Main.Zero)),new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not7(x0, Main.Zero))) ---------------------------------------- (1818) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not7(x0, Main.Zero)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1819) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1820) Complex Obligation (AND) ---------------------------------------- (1821) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1822) 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. ---------------------------------------- (1823) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1824) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1825) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1826) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5)) ---------------------------------------- (1827) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1828) 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. ---------------------------------------- (1829) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1830) 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]. new_not11 ---------------------------------------- (1831) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1832) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) ---------------------------------------- (1833) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1834) 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. ---------------------------------------- (1835) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1836) 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]. new_not5 ---------------------------------------- (1837) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1838) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) ---------------------------------------- (1839) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1840) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue). ---------------------------------------- (1841) NO ---------------------------------------- (1842) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1843) 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. ---------------------------------------- (1844) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1845) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 ---------------------------------------- (1846) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1847) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5)) ---------------------------------------- (1848) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1849) 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. ---------------------------------------- (1850) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1851) 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]. new_not10 ---------------------------------------- (1852) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1853) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) ---------------------------------------- (1854) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1855) 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. ---------------------------------------- (1856) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1857) 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]. new_not5 ---------------------------------------- (1858) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1859) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) ---------------------------------------- (1860) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1861) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue). ---------------------------------------- (1862) NO ---------------------------------------- (1863) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1864) 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. ---------------------------------------- (1865) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1866) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 ---------------------------------------- (1867) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1868) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5)) ---------------------------------------- (1869) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1870) 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. ---------------------------------------- (1871) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1872) 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]. new_not10 ---------------------------------------- (1873) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1874) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) ---------------------------------------- (1875) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1876) 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. ---------------------------------------- (1877) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1878) 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]. new_not5 ---------------------------------------- (1879) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1880) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue)) ---------------------------------------- (1881) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1882) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue) to new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), MyTrue). ---------------------------------------- (1883) NO ---------------------------------------- (1884) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1885) 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. ---------------------------------------- (1886) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1887) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (1888) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1889) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt2(Main.Zero, Main.Pos(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero)))) ---------------------------------------- (1890) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1891) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primPlusInt2(Main.Zero, Main.Pos(x1)), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x1, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(x1, Main.Zero), new_flip1(y0, new_primMinusNat0(x1, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero)))) ---------------------------------------- (1892) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) The TRS R consists of the following rules: new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1893) 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. ---------------------------------------- (1894) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1895) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (1896) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1897) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(y3), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(y3, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_primMinusNat0(y3, Main.Zero), new_flip1(y0, new_primMinusNat0(y3, Main.Zero))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1898) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1899) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (1900) Complex Obligation (AND) ---------------------------------------- (1901) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1902) 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. ---------------------------------------- (1903) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1904) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (1905) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1906) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (1907) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1908) 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. ---------------------------------------- (1909) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1910) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1911) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1912) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not8),new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not8)) (new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)),new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) ---------------------------------------- (1913) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not8) new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1914) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1915) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1916) 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. ---------------------------------------- (1917) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1918) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1919) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1920) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)),new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0))) ---------------------------------------- (1921) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1922) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (1923) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (1924) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) the following chains were created: *We consider the chain new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0)), new_takeWhile19(Main.Pos(x2), Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile19(Main.Pos(x2), Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), new_not7(x3, x2)) which results in the following constraint: (1) (new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))=new_takeWhile19(Main.Pos(x2), Main.Pos(Main.Succ(x3)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_not7(x1, x0)=MyTrue ==> new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Pos(x0), Main.Pos(Main.Succ(x1)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x1)), new_not7(x1, x0))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_not7(x1, x0)=MyTrue which results in the following new constraints: (3) (new_not12(x5, x4)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x4)), Main.Pos(Main.Succ(x5)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x5)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x4)), Main.Pos(Main.Succ(x5)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x5)), new_not7(x5, Main.Succ(x4)))) (4) (new_not8=MyTrue ==> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_not12(x5, x4)=MyTrue which results in the following new constraints: (5) (new_not10=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Zero)))) (6) (new_not11=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Succ(x7))))) (7) (new_not12(x9, x8)=MyTrue & (new_not12(x9, x8)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8)))) ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), new_not7(Main.Succ(x9), Main.Succ(Main.Succ(x8))))) (8) (new_not8=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), new_not7(Main.Succ(x10), Main.Succ(Main.Zero)))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (9) (new_not4=MyTrue ==> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) We simplified constraint (5) using rule (IV) which results in the following new constraint: (10) (new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Zero)))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (11) (new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Succ(x7))))) We simplified constraint (7) using rule (VI) where we applied the induction hypothesis (new_not12(x9, x8)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8)))) with sigma = [ ] which results in the following new constraint: (12) (new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8))) ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), new_not7(Main.Succ(x9), Main.Succ(Main.Succ(x8))))) We simplified constraint (8) using rule (IV) which results in the following new constraint: (13) (new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), new_not7(Main.Succ(x10), Main.Succ(Main.Zero)))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (14) (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) *(new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x8)), Main.Pos(Main.Succ(x9)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x9)), new_not7(x9, Main.Succ(x8))) ==> new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x8))), Main.Pos(Main.Succ(Main.Succ(x9))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x9))), new_not7(Main.Succ(x9), Main.Succ(Main.Succ(x8))))) *(new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Zero)))) *(new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Succ(x7))), Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Zero)), new_not7(Main.Zero, Main.Succ(Main.Succ(x7))))) *(new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(Main.Zero)), Main.Pos(Main.Succ(Main.Succ(x10))), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(x10))), new_not7(Main.Succ(x10), Main.Succ(Main.Zero)))) *(new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(x6)), new_not7(x6, Main.Zero))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (1925) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Pos(Main.Succ(z2)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Succ(z2)), new_not7(z2, z0)) The TRS R consists of the following rules: new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not4 new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1926) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1927) 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. ---------------------------------------- (1928) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1929) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) ---------------------------------------- (1930) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1931) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (1932) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1933) 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. ---------------------------------------- (1934) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1935) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) ---------------------------------------- (1936) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1937) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) (new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8)) (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10)) ---------------------------------------- (1938) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not8) new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1939) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1940) Complex Obligation (AND) ---------------------------------------- (1941) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1942) 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. ---------------------------------------- (1943) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1944) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (1945) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1946) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1947) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1948) 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. ---------------------------------------- (1949) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1950) 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]. new_not10 ---------------------------------------- (1951) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1952) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1953) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1954) 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. ---------------------------------------- (1955) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1956) 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]. new_not5 ---------------------------------------- (1957) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1958) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1959) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1960) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1961) NO ---------------------------------------- (1962) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1963) 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. ---------------------------------------- (1964) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1965) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (1966) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1967) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11)) ---------------------------------------- (1968) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1969) 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. ---------------------------------------- (1970) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1971) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (1972) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1973) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1974) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1975) 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. ---------------------------------------- (1976) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1977) 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]. new_not11 ---------------------------------------- (1978) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1979) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1980) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1981) 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. ---------------------------------------- (1982) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1983) 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]. new_not5 ---------------------------------------- (1984) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1985) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (1986) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1987) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (1988) NO ---------------------------------------- (1989) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1990) 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. ---------------------------------------- (1991) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1992) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (1993) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1994) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (1995) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1996) 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. ---------------------------------------- (1997) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1998) 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]. new_not10 ---------------------------------------- (1999) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2000) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2001) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2002) 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. ---------------------------------------- (2003) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2004) 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]. new_not5 ---------------------------------------- (2005) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2006) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2007) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2008) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (2009) NO ---------------------------------------- (2010) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_psMyInt0(Main.Pos(wy7510), wy752) -> new_primPlusInt2(new_primPlusNat0(Main.Zero, wy7510), wy752) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_primPlusInt2(wy833, Main.Pos(wy7520)) -> new_primMinusNat0(wy7520, wy833) new_primPlusInt2(wy833, Main.Neg(wy7520)) -> Main.Neg(new_primPlusNat0(wy833, wy7520)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2011) 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. ---------------------------------------- (2012) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt2(x0, Main.Neg(x1)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_primPlusInt2(x0, Main.Pos(x1)) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2013) 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]. new_primPlusInt2(x0, Main.Neg(x1)) new_primPlusInt2(x0, Main.Pos(x1)) ---------------------------------------- (2014) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2015) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_psMyInt0(Main.Neg(x0), x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1)))) ---------------------------------------- (2016) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2017) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_psMyInt0(Main.Neg(x0), x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1)))) ---------------------------------------- (2018) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_psMyInt0(Main.Neg(wy7510), wy752) -> new_primPlusInt0(wy7510, Main.Zero, wy752) new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2019) 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. ---------------------------------------- (2020) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_psMyInt0(Main.Neg(x0), x1) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_psMyInt0(Main.Pos(x0), x1) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2021) 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]. new_psMyInt0(Main.Neg(x0), x1) new_psMyInt0(Main.Pos(x0), x1) ---------------------------------------- (2022) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2023) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(x0), Main.Neg(x0), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(x0, Main.Zero, x1), Main.Neg(x0), Main.Neg(x0), new_primPlusInt0(x0, Main.Zero, x1), new_flip1(y0, new_primPlusInt0(x0, Main.Zero, x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) ---------------------------------------- (2024) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2025) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2026) Complex Obligation (AND) ---------------------------------------- (2027) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2028) 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. ---------------------------------------- (2029) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2030) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Zero, Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) ---------------------------------------- (2031) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2032) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt0(Main.Zero, Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0)))) ---------------------------------------- (2033) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2034) 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. ---------------------------------------- (2035) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2036) 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]. new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) ---------------------------------------- (2037) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2038) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), x0, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, x0), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, x0), new_flip1(y0, new_primPlusInt1(Main.Zero, x0))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (2039) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2040) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2041) Complex Obligation (AND) ---------------------------------------- (2042) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2043) 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. ---------------------------------------- (2044) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2045) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (2046) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2047) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Pos(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (2048) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2049) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1))))) ---------------------------------------- (2050) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2051) 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. ---------------------------------------- (2052) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2053) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (2054) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2055) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Zero, x1)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (2056) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2057) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2058) Complex Obligation (AND) ---------------------------------------- (2059) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2060) 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. ---------------------------------------- (2061) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2062) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2063) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2064) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (2065) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2066) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Succ(x0))), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (2067) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2068) 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. ---------------------------------------- (2069) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2070) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (2071) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2072) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x0)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))),new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2))))) ---------------------------------------- (2073) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2074) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) the following chains were created: *We consider the chain new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1)))), new_takeWhile19(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile19(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), new_flip1(x2, Main.Pos(Main.Succ(x3)))) which results in the following constraint: (1) (new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))=new_takeWhile19(x2, Main.Pos(Main.Succ(x3)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x3)), MyTrue) ==> new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Pos(Main.Succ(x1))=x4 & new_flip1(x0, x4)=MyTrue ==> new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(x0, Main.Pos(Main.Succ(x1))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x4)=MyTrue which results in the following new constraints: (3) (new_not8=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x5)) ==> new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) (4) (new_not7(x7, x8)=MyTrue & Main.Pos(Main.Succ(x1))=Main.Pos(Main.Succ(x7)) ==> new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x1))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not8=MyTrue ==> new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (4) using rules (I), (II), (III) which results in the following new constraint: (6) (new_not7(x7, x8)=MyTrue ==> new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), MyTrue)_>=_new_takeWhile19(Main.Pos(x8), Main.Pos(Main.Succ(x7)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x7)), new_flip1(Main.Pos(x8), Main.Pos(Main.Succ(x7))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (7) (new_not4=MyTrue ==> new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x7, x8)=MyTrue which results in the following new constraints: (9) (new_not12(x10, x9)=MyTrue ==> new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) (10) (new_not8=MyTrue ==> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) *(new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), MyTrue)_>=_new_takeWhile19(Main.Neg(x6), Main.Pos(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x1)), new_flip1(Main.Neg(x6), Main.Pos(Main.Succ(x1))))) *(new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x10)), new_flip1(Main.Pos(Main.Succ(x9)), Main.Pos(Main.Succ(x10))))) *(new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(x11)), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(x11))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (2075) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), MyTrue) -> new_takeWhile19(z0, Main.Pos(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Succ(z2)), new_flip1(z0, Main.Pos(Main.Succ(z2)))) The TRS R consists of the following rules: new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2076) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2077) 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. ---------------------------------------- (2078) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2079) 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]. new_not7(x0, Main.Zero) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) ---------------------------------------- (2080) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2081) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (2082) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2083) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(new_primPlusNat0(Main.Zero, Main.Zero)), new_flip1(y0, Main.Pos(Main.Zero))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) ---------------------------------------- (2084) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2085) 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. ---------------------------------------- (2086) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2087) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (2088) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2089) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) (new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8),new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8)) (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0))) (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10)) ---------------------------------------- (2090) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) new_takeWhile19(Main.Neg(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not8) new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2091) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (2092) Complex Obligation (AND) ---------------------------------------- (2093) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2094) 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. ---------------------------------------- (2095) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2096) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (2097) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2098) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (2099) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2100) 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. ---------------------------------------- (2101) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2102) 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]. new_not10 ---------------------------------------- (2103) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2104) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2105) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2106) 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. ---------------------------------------- (2107) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2108) 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]. new_not5 ---------------------------------------- (2109) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2110) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2111) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2112) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (2113) NO ---------------------------------------- (2114) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2115) 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. ---------------------------------------- (2116) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2117) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (2118) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2119) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not9(Main.Zero, x0)) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11)) ---------------------------------------- (2120) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2121) 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. ---------------------------------------- (2122) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not9(Main.Zero, x0) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2123) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2124) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2125) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (2126) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2127) 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. ---------------------------------------- (2128) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2129) 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]. new_not11 ---------------------------------------- (2130) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2131) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2132) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2133) 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. ---------------------------------------- (2134) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2135) 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]. new_not5 ---------------------------------------- (2136) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2137) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(Main.Succ(x0)), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2138) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2139) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Pos(Main.Succ(z0)), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (2140) NO ---------------------------------------- (2141) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not8 -> new_not4 new_not4 -> MyFalse The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2142) 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. ---------------------------------------- (2143) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2144) 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]. new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not9(Main.Succ(x0), x1) ---------------------------------------- (2145) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2146) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not10) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5)) ---------------------------------------- (2147) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not10 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2148) 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. ---------------------------------------- (2149) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2150) 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]. new_not10 ---------------------------------------- (2151) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2152) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2153) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2154) 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. ---------------------------------------- (2155) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2156) 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]. new_not5 ---------------------------------------- (2157) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2158) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(Main.Zero), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue),new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue)) ---------------------------------------- (2159) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2160) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) evaluates to t =new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue) to new_takeWhile19(Main.Neg(Main.Zero), Main.Pos(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), MyTrue). ---------------------------------------- (2161) NO ---------------------------------------- (2162) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2163) 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. ---------------------------------------- (2164) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2165) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (2166) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2167) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Zero, Main.Neg(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (2168) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2169) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primPlusInt1(Main.Zero, Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1)))) ---------------------------------------- (2170) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2171) 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. ---------------------------------------- (2172) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2173) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (2174) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2175) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, x1), Main.Neg(Main.Zero), Main.Neg(Main.Zero), new_primMinusNat0(Main.Zero, x1), new_flip1(y0, new_primMinusNat0(Main.Zero, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2176) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2177) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (2178) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2179) 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. ---------------------------------------- (2180) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2181) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2182) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2183) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2184) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2185) 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. ---------------------------------------- (2186) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2187) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (2188) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2189) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (2190) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2191) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2192) Complex Obligation (AND) ---------------------------------------- (2193) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2194) 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. ---------------------------------------- (2195) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2196) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (2197) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2198) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2))) ---------------------------------------- (2199) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2200) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (2201) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (2202) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, wy2000)) evaluates to t =new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [z0 / Main.Zero, wy2000 / z2] -------------------------------------------------------------------------------- Rewriting sequence new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) with rule new_not9(Main.Zero, wy2000) -> new_not11 at position [5] and matcher [wy2000 / z2] new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not11) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) with rule new_not11 -> new_not5 at position [5] and matcher [ ] new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not5) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) with rule new_not5 -> MyTrue at position [5] and matcher [ ] new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(Main.Zero, z2)) with rule new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), new_not9(z0, z2)) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (2203) NO ---------------------------------------- (2204) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2205) 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. ---------------------------------------- (2206) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2207) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2208) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (2210) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2211) 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. ---------------------------------------- (2212) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2213) 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]. new_not11 ---------------------------------------- (2214) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (2216) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2217) 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. ---------------------------------------- (2218) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2219) 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]. new_not5 ---------------------------------------- (2220) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2221) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue)) ---------------------------------------- (2222) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2223) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by semiunifying a rule from P directly. s = new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) evaluates to t =new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence The DP semiunifies directly so there is only one rewrite step from new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue) to new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(z2)), Main.Neg(Main.Zero), Main.Neg(Main.Zero), Main.Neg(Main.Succ(z2)), MyTrue). ---------------------------------------- (2224) NO ---------------------------------------- (2225) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt0(Main.Zero, Main.Zero, wy776) -> new_primPlusInt1(Main.Zero, wy776) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2226) 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. ---------------------------------------- (2227) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2228) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1)))) ---------------------------------------- (2229) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2230) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt0(Main.Succ(x0), Main.Zero, x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1)))) ---------------------------------------- (2231) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt0(Main.Succ(wy7780), Main.Zero, wy776) -> new_primPlusInt1(Main.Succ(wy7780), wy776) new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2232) 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. ---------------------------------------- (2233) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_primPlusInt0(Main.Zero, Main.Zero, x0) new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2234) 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]. new_primPlusInt0(Main.Zero, Main.Zero, x0) new_primPlusInt0(Main.Succ(x0), Main.Succ(x1), x2) new_primPlusInt0(Main.Succ(x0), Main.Zero, x1) new_primPlusInt0(Main.Zero, Main.Succ(x0), x1) ---------------------------------------- (2235) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2236) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), x1, MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(x0), x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primPlusInt1(Main.Succ(x0), x1), new_flip1(y0, new_primPlusInt1(Main.Succ(x0), x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) ---------------------------------------- (2237) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2238) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2239) Complex Obligation (AND) ---------------------------------------- (2240) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2241) 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. ---------------------------------------- (2242) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2243) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (2244) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2245) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (2246) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2247) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Pos(x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1))))) ---------------------------------------- (2248) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2249) 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. ---------------------------------------- (2250) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2251) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (2252) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2253) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(x1), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)), new_flip1(y0, Main.Pos(new_primPlusNat0(Main.Succ(y2), x1)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (2254) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2255) 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. ---------------------------------------- (2256) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2257) 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]. new_not9(Main.Zero, x0) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2258) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2259) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (2260) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2261) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0))))) ---------------------------------------- (2262) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2263) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Succ(x1))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) at position [4,0] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1))))))) ---------------------------------------- (2264) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(new_primPlusNat0(Main.Succ(x0), Main.Zero)), new_flip1(y0, Main.Pos(Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2265) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (2266) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2267) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) the following chains were created: *We consider the chain new_takeWhile19(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue) -> new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))))), new_takeWhile19(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) -> new_takeWhile19(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))), new_flip1(x4, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x6, x7)))))) which results in the following constraint: (1) (new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))=new_takeWhile19(x4, x5, Main.Neg(Main.Succ(x6)), Main.Neg(Main.Succ(x6)), Main.Pos(Main.Succ(x7)), MyTrue) ==> new_takeWhile19(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=x8 & new_flip1(x0, x8)=MyTrue ==> new_takeWhile19(x0, x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(x0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_flip1(x0, x8)=MyTrue which results in the following new constraints: (3) (new_not8=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x9)) ==> new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (4) (new_not7(x11, x12)=MyTrue & Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))=Main.Pos(Main.Succ(x11)) ==> new_takeWhile19(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint: (5) (new_not8=MyTrue ==> new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_not7(x11, x12)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x11 ==> new_takeWhile19(Main.Pos(x12), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(x12), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_not8=MyTrue which results in the following new constraint: (7) (new_not4=MyTrue ==> new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (8) (new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_not7(x11, x12)=MyTrue which results in the following new constraints: (9) (new_not12(x14, x13)=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x14 ==> new_takeWhile19(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) (10) (new_not8=MyTrue & Main.Succ(new_primPlusNat0(x2, x3))=x15 ==> new_takeWhile19(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (9) using rule (IV) which results in the following new constraint: (11) (new_takeWhile19(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) We simplified constraint (10) using rule (IV) which results in the following new constraint: (12) (new_takeWhile19(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) *(new_takeWhile19(Main.Neg(x10), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Neg(x10), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile19(Main.Pos(Main.Succ(x13)), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Succ(x13)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) *(new_takeWhile19(Main.Pos(Main.Zero), x1, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(x3)), MyTrue)_>=_new_takeWhile19(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(x2)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3)))), new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x2, x3))))))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. ---------------------------------------- (2268) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))), new_flip1(y0, Main.Pos(Main.Succ(Main.Succ(new_primPlusNat0(x0, x1)))))) The TRS R consists of the following rules: new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2269) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Pos(wy7340)) -> Main.Pos(new_primPlusNat0(wy824, wy7340)) new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primPlusNat0(Main.Succ(wy7780), Main.Succ(wy777000)) -> Main.Succ(Main.Succ(new_primPlusNat0(wy7780, wy777000))) new_primPlusNat0(Main.Zero, Main.Zero) -> Main.Zero new_primPlusNat0(Main.Succ(wy7780), Main.Zero) -> Main.Succ(wy7780) new_primPlusNat0(Main.Zero, Main.Succ(wy777000)) -> Main.Succ(wy777000) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2270) 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. ---------------------------------------- (2271) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2272) 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]. new_primPlusNat0(Main.Zero, Main.Zero) new_primPlusNat0(Main.Succ(x0), Main.Succ(x1)) new_primPlusNat0(Main.Succ(x0), Main.Zero) new_primPlusNat0(Main.Zero, Main.Succ(x0)) ---------------------------------------- (2273) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2274) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) ---------------------------------------- (2275) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2276) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primPlusInt1(Main.Succ(y2), Main.Neg(x1)), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1)))) ---------------------------------------- (2277) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primPlusInt1(wy824, Main.Neg(wy7340)) -> new_primMinusNat0(wy824, wy7340) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2278) 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. ---------------------------------------- (2279) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_primPlusInt1(x0, Main.Neg(x1)) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_primPlusInt1(x0, Main.Pos(x1)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2280) 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]. new_primPlusInt1(x0, Main.Neg(x1)) new_primPlusInt1(x0, Main.Pos(x1)) ---------------------------------------- (2281) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2282) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), Main.Neg(x1), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(y2), x1), Main.Neg(Main.Succ(y2)), Main.Neg(Main.Succ(y2)), new_primMinusNat0(Main.Succ(y2), x1), new_flip1(y0, new_primMinusNat0(Main.Succ(y2), x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) ---------------------------------------- (2283) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2284) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (2285) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2286) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (2287) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2288) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (2289) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2290) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x1)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(x0)), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2291) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2292) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (2293) Complex Obligation (AND) ---------------------------------------- (2294) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2295) 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. ---------------------------------------- (2296) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2297) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2298) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2299) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2300) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2301) 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. ---------------------------------------- (2302) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2303) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (2304) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2305) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x0))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (2306) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2307) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2308) Complex Obligation (AND) ---------------------------------------- (2309) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2310) 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. ---------------------------------------- (2311) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2312) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (2313) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2314) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) ---------------------------------------- (2315) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2316) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2317) YES ---------------------------------------- (2318) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2319) 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. ---------------------------------------- (2320) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2321) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2322) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2323) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (2324) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2325) 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. ---------------------------------------- (2326) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2327) 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]. new_not11 ---------------------------------------- (2328) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2329) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (2330) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2331) 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. ---------------------------------------- (2332) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2333) 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]. new_not5 ---------------------------------------- (2334) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2335) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue)) ---------------------------------------- (2336) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2337) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Pos(x1) = Main.Pos Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(x2))), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Succ(x2))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(Main.Zero)), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2338) YES ---------------------------------------- (2339) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2340) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (2341) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2342) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (2343) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2344) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x1))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(x0))), Main.Neg(Main.Succ(Main.Succ(x0))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2345) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2346) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (2347) Complex Obligation (AND) ---------------------------------------- (2348) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2349) 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. ---------------------------------------- (2350) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2351) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2352) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2353) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2354) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2355) 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. ---------------------------------------- (2356) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2357) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (2358) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2359) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (2360) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2361) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2362) Complex Obligation (AND) ---------------------------------------- (2363) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2364) 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. ---------------------------------------- (2365) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2366) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (2367) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2368) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) ---------------------------------------- (2369) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2370) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2371) YES ---------------------------------------- (2372) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2373) 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. ---------------------------------------- (2374) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2375) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2376) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2377) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (2378) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2379) 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. ---------------------------------------- (2380) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2381) 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]. new_not11 ---------------------------------------- (2382) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2383) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (2384) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2385) 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. ---------------------------------------- (2386) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2387) 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]. new_not5 ---------------------------------------- (2388) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2389) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue)) ---------------------------------------- (2390) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2391) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Pos(x1) = Main.Pos Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x2)))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(Main.Succ(Main.Zero))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2392) YES ---------------------------------------- (2393) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2394) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (2395) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2396) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (2397) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2398) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x1)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(x0)))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2399) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Pos(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Pos(Main.Zero), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2400) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (2401) Complex Obligation (AND) ---------------------------------------- (2402) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2403) 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. ---------------------------------------- (2404) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2405) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0))))) ---------------------------------------- (2406) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2407) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2408) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2409) 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. ---------------------------------------- (2410) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2411) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (2412) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2413) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11)) (new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)),new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1))) ---------------------------------------- (2414) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2415) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs. ---------------------------------------- (2416) Complex Obligation (AND) ---------------------------------------- (2417) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2418) 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. ---------------------------------------- (2419) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2420) 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]. new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) ---------------------------------------- (2421) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2422) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Neg(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Neg(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not9(x0, x1)) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)),new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2))) ---------------------------------------- (2423) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) The TRS R consists of the following rules: new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not12(Main.Succ(x0), Main.Zero) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_not4 new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2424) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Neg(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), new_not9(z0, x2)) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2425) YES ---------------------------------------- (2426) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2427) 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. ---------------------------------------- (2428) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2429) 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]. new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not9(Main.Succ(x0), x1) ---------------------------------------- (2430) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2431) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not11) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5)) ---------------------------------------- (2432) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not11 -> new_not5 new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2433) 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. ---------------------------------------- (2434) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not11 new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2435) 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]. new_not11 ---------------------------------------- (2436) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2437) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), new_not5) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue),new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue)) ---------------------------------------- (2438) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) The TRS R consists of the following rules: new_not5 -> MyTrue The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2439) 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. ---------------------------------------- (2440) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. The set Q consists of the following terms: new_not5 We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2441) 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]. new_not5 ---------------------------------------- (2442) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2443) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(Main.Pos(x0), y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(Main.Pos(x0), Main.Neg(Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x1)), MyTrue) we obtained the following new rules [LPAR04]: (new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue),new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue)) ---------------------------------------- (2444) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2445) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Pos(x1) = Main.Pos Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2))))), MyTrue) -> new_takeWhile19(Main.Pos(z0), Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Zero)))), Main.Neg(Main.Succ(x2)), MyTrue) (allowed arguments on rhs = {1, 2, 3, 4, 5, 6}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5, 6 >= 6 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2446) YES ---------------------------------------- (2447) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2448) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1))))) ---------------------------------------- (2449) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2450) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)))) at position [5,1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (2451) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2452) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [5] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0))))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero)))) (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2453) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Zero), new_flip1(y0, Main.Pos(Main.Succ(x0)))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Zero), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Zero), new_flip1(y0, Main.Pos(Main.Zero))) new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2454) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (2455) Complex Obligation (AND) ---------------------------------------- (2456) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2457) 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. ---------------------------------------- (2458) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2459) 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]. new_not7(x0, Main.Zero) new_not7(x0, Main.Succ(x1)) ---------------------------------------- (2460) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2461) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Zero, Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2462) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2463) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), new_primMinusNat0(Main.Zero, Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0))))) ---------------------------------------- (2464) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2465) 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. ---------------------------------------- (2466) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2467) 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]. new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) ---------------------------------------- (2468) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2469) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), MyTrue) -> new_takeWhile19(y0, Main.Neg(Main.Succ(x0)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x0)), new_flip1(y0, Main.Neg(Main.Succ(x0)))) we obtained the following new rules [LPAR04]: (new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))),new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2))))) ---------------------------------------- (2470) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) The TRS R consists of the following rules: new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not5 -> MyTrue new_not10 -> new_not5 The set Q consists of the following terms: new_not10 new_not8 new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2471) QDPSizeChangeProof (EQUIVALENT) We used the following order and afs together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:EMB rules! AFS: Main.Zero = Main.Zero MyTrue = MyTrue Main.Neg(x1) = x1 Main.Succ(x1) = Main.Succ(x1) From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(z0, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x2)))))), MyTrue) -> new_takeWhile19(z0, Main.Neg(Main.Succ(x2)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Zero))))), Main.Neg(Main.Succ(x2)), new_flip1(z0, Main.Neg(Main.Succ(x2)))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 2 > 2, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 2 > 5, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. none ---------------------------------------- (2472) YES ---------------------------------------- (2473) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2474) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (2475) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2476) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)), new_flip1(y0, new_primMinusNat0(x0, x1))) at position [4] we obtained the following new rules [LPAR04]: (new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))),new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1)))) ---------------------------------------- (2477) Obligation: Q DP problem: The TRS P consists of the following rules: new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) The TRS R consists of the following rules: new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) -> new_not10 new_flip1(Main.Neg(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not8 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not8 new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not11 new_flip1(Main.Neg(Main.Succ(wy43900)), Main.Neg(Main.Zero)) -> new_not7(wy43900, Main.Zero) new_flip1(Main.Pos(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not11 new_flip1(Main.Pos(wy4390), Main.Pos(Main.Succ(wy2000))) -> new_not7(wy2000, wy4390) new_flip1(Main.Pos(Main.Succ(wy43900)), Main.Pos(Main.Zero)) -> new_not9(Main.Zero, wy43900) new_flip1(Main.Neg(wy4390), Main.Neg(Main.Succ(wy2000))) -> new_not9(wy4390, wy2000) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) -> new_not10 new_not10 -> new_not5 new_not5 -> MyTrue new_not9(Main.Zero, wy2000) -> new_not11 new_not9(Main.Succ(wy43900), wy2000) -> new_not12(wy43900, wy2000) new_not12(Main.Zero, Main.Zero) -> new_not10 new_not12(Main.Zero, Main.Succ(wy439000)) -> new_not11 new_not12(Main.Succ(wy20000), Main.Succ(wy439000)) -> new_not12(wy20000, wy439000) new_not12(Main.Succ(wy20000), Main.Zero) -> new_not8 new_not8 -> new_not4 new_not4 -> MyFalse new_not11 -> new_not5 new_not7(wy2000, Main.Succ(wy43900)) -> new_not12(wy2000, wy43900) new_not7(wy2000, Main.Zero) -> new_not8 new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) The set Q consists of the following terms: new_not10 new_not8 new_primMinusNat0(Main.Zero, Main.Succ(x0)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Succ(x1)) new_flip1(Main.Neg(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Neg(Main.Zero)) new_primMinusNat0(Main.Succ(x0), Main.Zero) new_not7(x0, Main.Zero) new_flip1(Main.Pos(x0), Main.Pos(Main.Succ(x1))) new_not12(Main.Zero, Main.Zero) new_primMinusNat0(Main.Zero, Main.Zero) new_not12(Main.Zero, Main.Succ(x0)) new_not7(x0, Main.Succ(x1)) new_flip1(Main.Neg(x0), Main.Neg(Main.Succ(x1))) new_not12(Main.Succ(x0), Main.Zero) new_flip1(Main.Pos(Main.Zero), Main.Pos(Main.Zero)) new_not12(Main.Succ(x0), Main.Succ(x1)) new_not9(Main.Zero, x0) new_flip1(Main.Neg(Main.Zero), Main.Pos(Main.Zero)) new_flip1(Main.Pos(Main.Zero), Main.Neg(Main.Zero)) new_flip1(Main.Pos(Main.Succ(x0)), Main.Pos(Main.Zero)) new_flip1(Main.Neg(Main.Zero), Main.Neg(Main.Zero)) new_not4 new_flip1(Main.Neg(x0), Main.Pos(Main.Succ(x1))) new_flip1(Main.Pos(x0), Main.Neg(Main.Succ(x1))) new_not11 new_not5 new_not9(Main.Succ(x0), x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (2478) QDPSizeChangeProof (EQUIVALENT) We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem. Order:Polynomial interpretation [POLO]: POL(Main.Neg(x_1)) = x_1 POL(Main.Pos(x_1)) = 0 POL(Main.Succ(x_1)) = 1 + x_1 POL(Main.Zero) = 0 POL(MyTrue) = 1 POL(new_primMinusNat0(x_1, x_2)) = x_2 From the DPs we obtained the following set of size-change graphs: *new_takeWhile19(y0, y1, Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x1)))))), MyTrue) -> new_takeWhile19(y0, new_primMinusNat0(x0, x1), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), Main.Neg(Main.Succ(Main.Succ(Main.Succ(Main.Succ(Main.Succ(x0)))))), new_primMinusNat0(x0, x1), new_flip1(y0, new_primMinusNat0(x0, x1))) (allowed arguments on rhs = {1, 2, 3, 4, 5}) The graph contains the following edges 1 >= 1, 5 > 2, 3 >= 3, 4 >= 3, 3 >= 4, 4 >= 4, 5 > 5 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNat0(Main.Zero, Main.Zero) -> Main.Pos(Main.Zero) new_primMinusNat0(Main.Zero, Main.Succ(wy73400)) -> Main.Neg(Main.Succ(wy73400)) new_primMinusNat0(Main.Succ(wy8240), Main.Zero) -> Main.Pos(Main.Succ(wy8240)) new_primMinusNat0(Main.Succ(wy8240), Main.Succ(wy73400)) -> new_primMinusNat0(wy8240, wy73400) ---------------------------------------- (2479) YES ---------------------------------------- (2480) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="enumFromThenToRatio",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="enumFromThenToRatio wy3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="enumFromThenToRatio wy3 wy4",fontsize=16,color="grey",shape="box"];4 -> 5[label="",style="dashed", color="grey", weight=3]; 5[label="enumFromThenToRatio wy3 wy4 wy5",fontsize=16,color="black",shape="triangle"];5 -> 6[label="",style="solid", color="black", weight=3]; 6 -> 897[label="",style="dashed", color="red", weight=0]; 6[label="map toEnumRatio (enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5))",fontsize=16,color="magenta"];6 -> 898[label="",style="dashed", color="magenta", weight=3]; 898[label="enumFromThenToMyInt (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];898 -> 1395[label="",style="solid", color="black", weight=3]; 897[label="map toEnumRatio wy13",fontsize=16,color="burlywood",shape="triangle"];17123[label="wy13/Cons wy130 wy131",fontsize=10,color="white",style="solid",shape="box"];897 -> 17123[label="",style="solid", color="burlywood", weight=9]; 17123 -> 1396[label="",style="solid", color="burlywood", weight=3]; 17124[label="wy13/Nil",fontsize=10,color="white",style="solid",shape="box"];897 -> 17124[label="",style="solid", color="burlywood", weight=9]; 17124 -> 1397[label="",style="solid", color="burlywood", weight=3]; 1395[label="numericEnumFromThenTo (fromEnumRatio wy3) (fromEnumRatio wy4) (fromEnumRatio wy5)",fontsize=16,color="black",shape="box"];1395 -> 1398[label="",style="solid", color="black", weight=3]; 1396[label="map toEnumRatio (Cons wy130 wy131)",fontsize=16,color="black",shape="box"];1396 -> 1399[label="",style="solid", color="black", weight=3]; 1397[label="map toEnumRatio Nil",fontsize=16,color="black",shape="box"];1397 -> 1400[label="",style="solid", color="black", weight=3]; 1398[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (numericEnumFromThen (fromEnumRatio wy3) (fromEnumRatio wy4))",fontsize=16,color="black",shape="box"];1398 -> 1401[label="",style="solid", color="black", weight=3]; 1399[label="Cons (toEnumRatio wy130) (map toEnumRatio wy131)",fontsize=16,color="green",shape="box"];1399 -> 1402[label="",style="dashed", color="green", weight=3]; 1399 -> 1403[label="",style="dashed", color="green", weight=3]; 1400[label="Nil",fontsize=16,color="green",shape="box"];1401[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1401 -> 1404[label="",style="solid", color="black", weight=3]; 1402[label="toEnumRatio wy130",fontsize=16,color="black",shape="box"];1402 -> 1405[label="",style="solid", color="black", weight=3]; 1403 -> 897[label="",style="dashed", color="red", weight=0]; 1403[label="map toEnumRatio wy131",fontsize=16,color="magenta"];1403 -> 1406[label="",style="dashed", color="magenta", weight=3]; 1404[label="takeWhile (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1404 -> 1407[label="",style="solid", color="black", weight=3]; 1405[label="fromIntRatio wy130",fontsize=16,color="black",shape="box"];1405 -> 1408[label="",style="solid", color="black", weight=3]; 1406[label="wy131",fontsize=16,color="green",shape="box"];1407[label="takeWhile2 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (Cons (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))))",fontsize=16,color="black",shape="box"];1407 -> 1409[label="",style="solid", color="black", weight=3]; 1408[label="intToRatio wy130",fontsize=16,color="black",shape="box"];1408 -> 1410[label="",style="solid", color="black", weight=3]; 1409[label="takeWhile1 (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1409 -> 1411[label="",style="solid", color="black", weight=3]; 1410[label="CnPc (fromIntMyInt wy130) (fromIntMyInt (Pos (Succ Zero)))",fontsize=16,color="green",shape="box"];1410 -> 1412[label="",style="dashed", color="green", weight=3]; 1410 -> 1413[label="",style="dashed", color="green", weight=3]; 1411[label="takeWhile1 (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP2 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1411 -> 1414[label="",style="solid", color="black", weight=3]; 1412[label="fromIntMyInt wy130",fontsize=16,color="black",shape="triangle"];1412 -> 1415[label="",style="solid", color="black", weight=3]; 1413 -> 1412[label="",style="dashed", color="red", weight=0]; 1413[label="fromIntMyInt (Pos (Succ Zero))",fontsize=16,color="magenta"];1413 -> 1416[label="",style="dashed", color="magenta", weight=3]; 1414[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (gtEsMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1414 -> 1417[label="",style="solid", color="black", weight=3]; 1415[label="wy130",fontsize=16,color="green",shape="box"];1416[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];1417[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (fsEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1417 -> 1418[label="",style="solid", color="black", weight=3]; 1418[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (compareMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1418 -> 1419[label="",style="solid", color="black", weight=3]; 1419[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (fromEnumRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (fromEnumRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (fromEnumRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1419 -> 1420[label="",style="solid", color="black", weight=3]; 1420[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateRatio wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateRatio wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateRatio wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1420 -> 1421[label="",style="solid", color="black", weight=3]; 1421[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM wy4) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM wy4) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM wy4) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1421 -> 1422[label="",style="solid", color="black", weight=3]; 1422[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (truncateVu6 wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1422 -> 1423[label="",style="solid", color="black", weight=3]; 1423[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 wy4 (properFractionRatio wy4)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17125[label="wy4/CnPc wy40 wy41",fontsize=10,color="white",style="solid",shape="box"];1423 -> 17125[label="",style="solid", color="burlywood", weight=9]; 17125 -> 1424[label="",style="solid", color="burlywood", weight=3]; 1424[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (properFractionRatio (CnPc wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1424 -> 1425[label="",style="solid", color="black", weight=3]; 1425[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (truncateM0 (CnPc wy40 wy41) (Tup2 (properFractionQ wy40 wy41) (CnPc (properFractionR wy40 wy41) wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1425 -> 1426[label="",style="solid", color="black", weight=3]; 1426[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1426 -> 1427[label="",style="solid", color="black", weight=3]; 1427[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (properFractionVu30 wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1427 -> 1428[label="",style="solid", color="black", weight=3]; 1428[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (quotRemMyInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1428 -> 1429[label="",style="solid", color="black", weight=3]; 1429[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (primQrmInt wy40 wy41)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1429 -> 1430[label="",style="solid", color="black", weight=3]; 1430[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3))) (psMyInt (msMyInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (properFractionQ1 wy40 wy41 (Tup2 (primQuotInt wy40 wy41) (primRemInt wy40 wy41))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1430 -> 1431[label="",style="solid", color="black", weight=3]; 1431[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt wy40 wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt wy40 wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17126[label="wy40/Pos wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17126[label="",style="solid", color="burlywood", weight=9]; 17126 -> 1432[label="",style="solid", color="burlywood", weight=3]; 17127[label="wy40/Neg wy400",fontsize=10,color="white",style="solid",shape="box"];1431 -> 17127[label="",style="solid", color="burlywood", weight=9]; 17127 -> 1433[label="",style="solid", color="burlywood", weight=3]; 1432[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17128[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17128[label="",style="solid", color="burlywood", weight=9]; 17128 -> 1434[label="",style="solid", color="burlywood", weight=3]; 17129[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1432 -> 17129[label="",style="solid", color="burlywood", weight=9]; 17129 -> 1435[label="",style="solid", color="burlywood", weight=3]; 1433[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) wy41) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17130[label="wy41/Pos wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17130[label="",style="solid", color="burlywood", weight=9]; 17130 -> 1436[label="",style="solid", color="burlywood", weight=3]; 17131[label="wy41/Neg wy410",fontsize=10,color="white",style="solid",shape="box"];1433 -> 17131[label="",style="solid", color="burlywood", weight=9]; 17131 -> 1437[label="",style="solid", color="burlywood", weight=3]; 1434[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17132[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17132[label="",style="solid", color="burlywood", weight=9]; 17132 -> 1438[label="",style="solid", color="burlywood", weight=3]; 17133[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1434 -> 17133[label="",style="solid", color="burlywood", weight=9]; 17133 -> 1439[label="",style="solid", color="burlywood", weight=3]; 1435[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17134[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17134[label="",style="solid", color="burlywood", weight=9]; 17134 -> 1440[label="",style="solid", color="burlywood", weight=3]; 17135[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1435 -> 17135[label="",style="solid", color="burlywood", weight=9]; 17135 -> 1441[label="",style="solid", color="burlywood", weight=3]; 1436[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17136[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17136[label="",style="solid", color="burlywood", weight=9]; 17136 -> 1442[label="",style="solid", color="burlywood", weight=3]; 17137[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1436 -> 17137[label="",style="solid", color="burlywood", weight=9]; 17137 -> 1443[label="",style="solid", color="burlywood", weight=3]; 1437[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg wy410)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17138[label="wy410/Succ wy4100",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17138[label="",style="solid", color="burlywood", weight=9]; 17138 -> 1444[label="",style="solid", color="burlywood", weight=3]; 17139[label="wy410/Zero",fontsize=10,color="white",style="solid",shape="box"];1437 -> 17139[label="",style="solid", color="burlywood", weight=9]; 17139 -> 1445[label="",style="solid", color="burlywood", weight=3]; 1438[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1438 -> 1446[label="",style="solid", color="black", weight=3]; 1439[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1439 -> 1447[label="",style="solid", color="black", weight=3]; 1440[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1440 -> 1448[label="",style="solid", color="black", weight=3]; 1441[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Pos wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1441 -> 1449[label="",style="solid", color="black", weight=3]; 1442[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1442 -> 1450[label="",style="solid", color="black", weight=3]; 1443[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Pos Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1443 -> 1451[label="",style="solid", color="black", weight=3]; 1444[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1444 -> 1452[label="",style="solid", color="black", weight=3]; 1445[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3))) (psMyInt (msMyInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (primQuotInt (Neg wy400) (Neg Zero)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1445 -> 1453[label="",style="solid", color="black", weight=3]; 1446[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17140[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17140[label="",style="solid", color="burlywood", weight=9]; 17140 -> 1454[label="",style="solid", color="burlywood", weight=3]; 17141[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1446 -> 17141[label="",style="solid", color="burlywood", weight=9]; 17141 -> 1455[label="",style="solid", color="burlywood", weight=3]; 1447[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="triangle"];1447 -> 1456[label="",style="solid", color="black", weight=3]; 1448[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="triangle"];17142[label="wy400/Succ wy4000",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17142[label="",style="solid", color="burlywood", weight=9]; 17142 -> 1457[label="",style="solid", color="burlywood", weight=3]; 17143[label="wy400/Zero",fontsize=10,color="white",style="solid",shape="box"];1448 -> 17143[label="",style="solid", color="burlywood", weight=9]; 17143 -> 1458[label="",style="solid", color="burlywood", weight=3]; 1449 -> 1447[label="",style="dashed", color="red", weight=0]; 1449[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1448[label="",style="dashed", color="red", weight=0]; 1450[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1450 -> 1459[label="",style="dashed", color="magenta", weight=3]; 1450 -> 1460[label="",style="dashed", color="magenta", weight=3]; 1451 -> 1447[label="",style="dashed", color="red", weight=0]; 1451[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1446[label="",style="dashed", color="red", weight=0]; 1452[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS wy400 (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1452 -> 1461[label="",style="dashed", color="magenta", weight=3]; 1452 -> 1462[label="",style="dashed", color="magenta", weight=3]; 1453 -> 1447[label="",style="dashed", color="red", weight=0]; 1453[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt error (fromEnumRatio wy3))) (psMyInt (msMyInt error (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) error (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt error (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1454[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1454 -> 1463[label="",style="solid", color="black", weight=3]; 1455[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1455 -> 1464[label="",style="solid", color="black", weight=3]; 1456[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3))) (psMyInt (msMyInt (stop MyTrue) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (stop MyTrue) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (stop MyTrue) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1456 -> 1465[label="",style="solid", color="black", weight=3]; 1457[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS (Succ wy4000) (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1457 -> 1466[label="",style="solid", color="black", weight=3]; 1458[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS Zero (Succ wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1458 -> 1467[label="",style="solid", color="black", weight=3]; 1459[label="wy4100",fontsize=16,color="green",shape="box"];1460[label="wy400",fontsize=16,color="green",shape="box"];1461[label="wy400",fontsize=16,color="green",shape="box"];1462[label="wy4100",fontsize=16,color="green",shape="box"];1463[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17144[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17144[label="",style="solid", color="burlywood", weight=9]; 17144 -> 1468[label="",style="solid", color="burlywood", weight=3]; 17145[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1463 -> 17145[label="",style="solid", color="burlywood", weight=9]; 17145 -> 1469[label="",style="solid", color="burlywood", weight=3]; 1464 -> 13676[label="",style="dashed", color="red", weight=0]; 1464[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1464 -> 13677[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13678[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13679[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13680[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13681[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13682[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13683[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13684[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13685[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13686[label="",style="dashed", color="magenta", weight=3]; 1464 -> 13687[label="",style="dashed", color="magenta", weight=3]; 1465[label="error []",fontsize=16,color="red",shape="box"];1466[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 wy4000 wy4100 (primGEqNatS wy4000 wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17146[label="wy4000/Succ wy40000",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17146[label="",style="solid", color="burlywood", weight=9]; 17146 -> 1471[label="",style="solid", color="burlywood", weight=3]; 17147[label="wy4000/Zero",fontsize=10,color="white",style="solid",shape="box"];1466 -> 17147[label="",style="solid", color="burlywood", weight=9]; 17147 -> 1472[label="",style="solid", color="burlywood", weight=3]; 1467 -> 16126[label="",style="dashed", color="red", weight=0]; 1467[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1467 -> 16127[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16128[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16129[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16130[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16131[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16132[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16133[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16134[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16135[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16136[label="",style="dashed", color="magenta", weight=3]; 1467 -> 16137[label="",style="dashed", color="magenta", weight=3]; 1468[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17148[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17148[label="",style="solid", color="burlywood", weight=9]; 17148 -> 1474[label="",style="solid", color="burlywood", weight=3]; 17149[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1468 -> 17149[label="",style="solid", color="burlywood", weight=9]; 17149 -> 1475[label="",style="solid", color="burlywood", weight=3]; 1469[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17150[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17150[label="",style="solid", color="burlywood", weight=9]; 17150 -> 1476[label="",style="solid", color="burlywood", weight=3]; 17151[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1469 -> 17151[label="",style="solid", color="burlywood", weight=9]; 17151 -> 1477[label="",style="solid", color="burlywood", weight=3]; 13677 -> 2355[label="",style="dashed", color="red", weight=0]; 13677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13678 -> 2355[label="",style="dashed", color="red", weight=0]; 13678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13679 -> 2355[label="",style="dashed", color="red", weight=0]; 13679[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13680 -> 2355[label="",style="dashed", color="red", weight=0]; 13680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13681 -> 2355[label="",style="dashed", color="red", weight=0]; 13681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13682 -> 2355[label="",style="dashed", color="red", weight=0]; 13682[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13683 -> 2355[label="",style="dashed", color="red", weight=0]; 13683[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13683 -> 14824[label="",style="dashed", color="magenta", weight=3]; 13684 -> 14825[label="",style="dashed", color="red", weight=0]; 13684[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13684 -> 14826[label="",style="dashed", color="magenta", weight=3]; 13685 -> 2355[label="",style="dashed", color="red", weight=0]; 13685[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13686 -> 2355[label="",style="dashed", color="red", weight=0]; 13686[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13686 -> 14832[label="",style="dashed", color="magenta", weight=3]; 13687 -> 14825[label="",style="dashed", color="red", weight=0]; 13687[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13687 -> 14827[label="",style="dashed", color="magenta", weight=3]; 13676[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 wy792 wy738)",fontsize=16,color="burlywood",shape="triangle"];17152[label="wy792/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17152[label="",style="solid", color="burlywood", weight=9]; 17152 -> 14833[label="",style="solid", color="burlywood", weight=3]; 17153[label="wy792/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13676 -> 17153[label="",style="solid", color="burlywood", weight=9]; 17153 -> 14834[label="",style="solid", color="burlywood", weight=3]; 1471[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) wy4100 (primGEqNatS (Succ wy40000) wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17154[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17154[label="",style="solid", color="burlywood", weight=9]; 17154 -> 1479[label="",style="solid", color="burlywood", weight=3]; 17155[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1471 -> 17155[label="",style="solid", color="burlywood", weight=9]; 17155 -> 1480[label="",style="solid", color="burlywood", weight=3]; 1472[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero wy4100 (primGEqNatS Zero wy4100))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="burlywood",shape="box"];17156[label="wy4100/Succ wy41000",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17156[label="",style="solid", color="burlywood", weight=9]; 17156 -> 1481[label="",style="solid", color="burlywood", weight=3]; 17157[label="wy4100/Zero",fontsize=10,color="white",style="solid",shape="box"];1472 -> 17157[label="",style="solid", color="burlywood", weight=9]; 17157 -> 1482[label="",style="solid", color="burlywood", weight=3]; 16127 -> 16170[label="",style="dashed", color="red", weight=0]; 16127[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16127 -> 16171[label="",style="dashed", color="magenta", weight=3]; 16128 -> 2355[label="",style="dashed", color="red", weight=0]; 16128[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16129 -> 2355[label="",style="dashed", color="red", weight=0]; 16129[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16129 -> 16177[label="",style="dashed", color="magenta", weight=3]; 16130 -> 2355[label="",style="dashed", color="red", weight=0]; 16130[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16131 -> 2355[label="",style="dashed", color="red", weight=0]; 16131[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16132 -> 2355[label="",style="dashed", color="red", weight=0]; 16132[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16132 -> 16178[label="",style="dashed", color="magenta", weight=3]; 16133 -> 2355[label="",style="dashed", color="red", weight=0]; 16133[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16134 -> 16170[label="",style="dashed", color="red", weight=0]; 16134[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16134 -> 16172[label="",style="dashed", color="magenta", weight=3]; 16135 -> 2355[label="",style="dashed", color="red", weight=0]; 16135[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16136 -> 2355[label="",style="dashed", color="red", weight=0]; 16136[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16137 -> 2355[label="",style="dashed", color="red", weight=0]; 16137[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16126[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 wy808 wy756)",fontsize=16,color="burlywood",shape="triangle"];17158[label="wy808/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17158[label="",style="solid", color="burlywood", weight=9]; 17158 -> 16179[label="",style="solid", color="burlywood", weight=3]; 17159[label="wy808/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16126 -> 17159[label="",style="solid", color="burlywood", weight=9]; 17159 -> 16180[label="",style="solid", color="burlywood", weight=3]; 1474[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1474 -> 1484[label="",style="solid", color="black", weight=3]; 1475[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1475 -> 1485[label="",style="solid", color="black", weight=3]; 1476[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1476 -> 1486[label="",style="solid", color="black", weight=3]; 1477[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1477 -> 1487[label="",style="solid", color="black", weight=3]; 2355[label="fromEnumRatio wy3",fontsize=16,color="black",shape="triangle"];2355 -> 2368[label="",style="solid", color="black", weight=3]; 14824[label="wy5",fontsize=16,color="green",shape="box"];14826 -> 2355[label="",style="dashed", color="red", weight=0]; 14826[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14825[label="not (esEsOrdering (primCmpInt (Pos Zero) wy794) LT)",fontsize=16,color="burlywood",shape="triangle"];17160[label="wy794/Pos wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17160[label="",style="solid", color="burlywood", weight=9]; 17160 -> 14835[label="",style="solid", color="burlywood", weight=3]; 17161[label="wy794/Neg wy7940",fontsize=10,color="white",style="solid",shape="box"];14825 -> 17161[label="",style="solid", color="burlywood", weight=9]; 17161 -> 14836[label="",style="solid", color="burlywood", weight=3]; 14832[label="wy5",fontsize=16,color="green",shape="box"];14827 -> 2355[label="",style="dashed", color="red", weight=0]; 14827[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14833[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14833 -> 14883[label="",style="solid", color="black", weight=3]; 14834[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 wy793) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];14834 -> 14884[label="",style="solid", color="black", weight=3]; 1479[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS (Succ wy40000) (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1479 -> 1489[label="",style="solid", color="black", weight=3]; 1480[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero (primGEqNatS (Succ wy40000) Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1480 -> 1490[label="",style="solid", color="black", weight=3]; 1481[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) (primGEqNatS Zero (Succ wy41000)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1481 -> 1491[label="",style="solid", color="black", weight=3]; 1482[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero (primGEqNatS Zero Zero))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1482 -> 1492[label="",style="solid", color="black", weight=3]; 16171 -> 2355[label="",style="dashed", color="red", weight=0]; 16171[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16170[label="not (esEsOrdering (primCmpInt (Neg Zero) wy810) LT)",fontsize=16,color="burlywood",shape="triangle"];17162[label="wy810/Pos wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17162[label="",style="solid", color="burlywood", weight=9]; 17162 -> 16181[label="",style="solid", color="burlywood", weight=3]; 17163[label="wy810/Neg wy8100",fontsize=10,color="white",style="solid",shape="box"];16170 -> 17163[label="",style="solid", color="burlywood", weight=9]; 17163 -> 16182[label="",style="solid", color="burlywood", weight=3]; 16177[label="wy5",fontsize=16,color="green",shape="box"];16178[label="wy5",fontsize=16,color="green",shape="box"];16172 -> 2355[label="",style="dashed", color="red", weight=0]; 16172[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16179[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16179 -> 16190[label="",style="solid", color="black", weight=3]; 16180[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 wy809) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];16180 -> 16191[label="",style="solid", color="black", weight=3]; 1484 -> 11246[label="",style="dashed", color="red", weight=0]; 1484[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1484 -> 11247[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11248[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11249[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11250[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11251[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11252[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11253[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11254[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11255[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11256[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11257[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11258[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11259[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11260[label="",style="dashed", color="magenta", weight=3]; 1484 -> 11261[label="",style="dashed", color="magenta", weight=3]; 1485[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1485 -> 1496[label="",style="solid", color="black", weight=3]; 1486[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1486 -> 1497[label="",style="solid", color="black", weight=3]; 1487[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1487 -> 1498[label="",style="solid", color="black", weight=3]; 2368[label="truncateRatio wy3",fontsize=16,color="black",shape="box"];2368 -> 2477[label="",style="solid", color="black", weight=3]; 14835[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17164[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17164[label="",style="solid", color="burlywood", weight=9]; 17164 -> 14885[label="",style="solid", color="burlywood", weight=3]; 17165[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14835 -> 17165[label="",style="solid", color="burlywood", weight=9]; 17165 -> 14886[label="",style="solid", color="burlywood", weight=3]; 14836[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7940)) LT)",fontsize=16,color="burlywood",shape="box"];17166[label="wy7940/Succ wy79400",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17166[label="",style="solid", color="burlywood", weight=9]; 17166 -> 14887[label="",style="solid", color="burlywood", weight=3]; 17167[label="wy7940/Zero",fontsize=10,color="white",style="solid",shape="box"];14836 -> 17167[label="",style="solid", color="burlywood", weight=9]; 17167 -> 14888[label="",style="solid", color="burlywood", weight=3]; 14883 -> 14904[label="",style="dashed", color="red", weight=0]; 14883[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];14883 -> 14905[label="",style="dashed", color="magenta", weight=3]; 14884[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];14884 -> 14906[label="",style="solid", color="black", weight=3]; 1489 -> 11563[label="",style="dashed", color="red", weight=0]; 1489[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) (Succ wy41000) (primGEqNatS wy40000 wy41000))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1489 -> 11564[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11565[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11566[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11567[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11568[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11569[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11570[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11571[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11572[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11573[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11574[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11575[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11576[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11577[label="",style="dashed", color="magenta", weight=3]; 1489 -> 11578[label="",style="dashed", color="magenta", weight=3]; 1490[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy40000) Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1490 -> 1502[label="",style="solid", color="black", weight=3]; 1491[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero (Succ wy41000) MyFalse)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1491 -> 1503[label="",style="solid", color="black", weight=3]; 1492[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 Zero Zero MyTrue)) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="black",shape="box"];1492 -> 1504[label="",style="solid", color="black", weight=3]; 16181[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17168[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17168[label="",style="solid", color="burlywood", weight=9]; 17168 -> 16192[label="",style="solid", color="burlywood", weight=3]; 17169[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16181 -> 17169[label="",style="solid", color="burlywood", weight=9]; 17169 -> 16193[label="",style="solid", color="burlywood", weight=3]; 16182[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy8100)) LT)",fontsize=16,color="burlywood",shape="box"];17170[label="wy8100/Succ wy81000",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17170[label="",style="solid", color="burlywood", weight=9]; 17170 -> 16194[label="",style="solid", color="burlywood", weight=3]; 17171[label="wy8100/Zero",fontsize=10,color="white",style="solid",shape="box"];16182 -> 17171[label="",style="solid", color="burlywood", weight=9]; 17171 -> 16195[label="",style="solid", color="burlywood", weight=3]; 16190 -> 16232[label="",style="dashed", color="red", weight=0]; 16190[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16190 -> 16233[label="",style="dashed", color="magenta", weight=3]; 16191[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16191 -> 16234[label="",style="solid", color="black", weight=3]; 11247 -> 2355[label="",style="dashed", color="red", weight=0]; 11247[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11248[label="wy41000",fontsize=16,color="green",shape="box"];11249[label="wy40000",fontsize=16,color="green",shape="box"];11250 -> 2355[label="",style="dashed", color="red", weight=0]; 11250[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11251 -> 2355[label="",style="dashed", color="red", weight=0]; 11251[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11252 -> 2355[label="",style="dashed", color="red", weight=0]; 11252[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11253 -> 2355[label="",style="dashed", color="red", weight=0]; 11253[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11253 -> 11412[label="",style="dashed", color="magenta", weight=3]; 11254 -> 2355[label="",style="dashed", color="red", weight=0]; 11254[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11255[label="wy40000",fontsize=16,color="green",shape="box"];11256 -> 2355[label="",style="dashed", color="red", weight=0]; 11256[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11257 -> 2355[label="",style="dashed", color="red", weight=0]; 11257[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11258 -> 2355[label="",style="dashed", color="red", weight=0]; 11258[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11259[label="wy41000",fontsize=16,color="green",shape="box"];11260 -> 2355[label="",style="dashed", color="red", weight=0]; 11260[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11261 -> 2355[label="",style="dashed", color="red", weight=0]; 11261[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11261 -> 11413[label="",style="dashed", color="magenta", weight=3]; 11246[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy727 wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="triangle"];17172[label="wy727/Succ wy7270",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17172[label="",style="solid", color="burlywood", weight=9]; 17172 -> 11414[label="",style="solid", color="burlywood", weight=3]; 17173[label="wy727/Zero",fontsize=10,color="white",style="solid",shape="box"];11246 -> 17173[label="",style="solid", color="burlywood", weight=9]; 17173 -> 11415[label="",style="solid", color="burlywood", weight=3]; 1496 -> 12619[label="",style="dashed", color="red", weight=0]; 1496[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1496 -> 12620[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12621[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12622[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12623[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12624[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12625[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12626[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12627[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12628[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12629[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12630[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12631[label="",style="dashed", color="magenta", weight=3]; 1496 -> 12632[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13676[label="",style="dashed", color="red", weight=0]; 1497[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1497 -> 13721[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13722[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13723[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13724[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13725[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13726[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13727[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13728[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13729[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13730[label="",style="dashed", color="magenta", weight=3]; 1497 -> 13731[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12619[label="",style="dashed", color="red", weight=0]; 1498[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1498 -> 12633[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12634[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12635[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12636[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12637[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12638[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12639[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12640[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12641[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12642[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12643[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12644[label="",style="dashed", color="magenta", weight=3]; 1498 -> 12645[label="",style="dashed", color="magenta", weight=3]; 2477[label="truncateM wy3",fontsize=16,color="black",shape="box"];2477 -> 2485[label="",style="solid", color="black", weight=3]; 14885[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14885 -> 14907[label="",style="solid", color="black", weight=3]; 14886[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];14886 -> 14908[label="",style="solid", color="black", weight=3]; 14887[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy79400))) LT)",fontsize=16,color="black",shape="box"];14887 -> 14909[label="",style="solid", color="black", weight=3]; 14888[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];14888 -> 14910[label="",style="solid", color="black", weight=3]; 14905 -> 5275[label="",style="dashed", color="red", weight=0]; 14905[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];14905 -> 14911[label="",style="dashed", color="magenta", weight=3]; 14905 -> 14912[label="",style="dashed", color="magenta", weight=3]; 14904[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) wy801",fontsize=16,color="burlywood",shape="triangle"];17174[label="wy801/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17174[label="",style="solid", color="burlywood", weight=9]; 17174 -> 14913[label="",style="solid", color="burlywood", weight=3]; 17175[label="wy801/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14904 -> 17175[label="",style="solid", color="burlywood", weight=9]; 17175 -> 14914[label="",style="solid", color="burlywood", weight=3]; 14906[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP0 wy735 (Pos Zero) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];14906 -> 14928[label="",style="solid", color="black", weight=3]; 11564[label="wy41000",fontsize=16,color="green",shape="box"];11565 -> 2355[label="",style="dashed", color="red", weight=0]; 11565[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11566 -> 2355[label="",style="dashed", color="red", weight=0]; 11566[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11566 -> 11729[label="",style="dashed", color="magenta", weight=3]; 11567 -> 2355[label="",style="dashed", color="red", weight=0]; 11567[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11568 -> 2355[label="",style="dashed", color="red", weight=0]; 11568[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11569[label="wy41000",fontsize=16,color="green",shape="box"];11570 -> 2355[label="",style="dashed", color="red", weight=0]; 11570[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11571[label="wy40000",fontsize=16,color="green",shape="box"];11572 -> 2355[label="",style="dashed", color="red", weight=0]; 11572[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11573 -> 2355[label="",style="dashed", color="red", weight=0]; 11573[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11574 -> 2355[label="",style="dashed", color="red", weight=0]; 11574[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11575 -> 2355[label="",style="dashed", color="red", weight=0]; 11575[label="fromEnumRatio wy5",fontsize=16,color="magenta"];11575 -> 11730[label="",style="dashed", color="magenta", weight=3]; 11576[label="wy40000",fontsize=16,color="green",shape="box"];11577 -> 2355[label="",style="dashed", color="red", weight=0]; 11577[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11578 -> 2355[label="",style="dashed", color="red", weight=0]; 11578[label="fromEnumRatio wy3",fontsize=16,color="magenta"];11563[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy745 wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="triangle"];17176[label="wy745/Succ wy7450",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17176[label="",style="solid", color="burlywood", weight=9]; 17176 -> 11731[label="",style="solid", color="burlywood", weight=3]; 17177[label="wy745/Zero",fontsize=10,color="white",style="solid",shape="box"];11563 -> 17177[label="",style="solid", color="burlywood", weight=9]; 17177 -> 11732[label="",style="solid", color="burlywood", weight=3]; 1502 -> 14842[label="",style="dashed", color="red", weight=0]; 1502[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1502 -> 14843[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14844[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14845[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14846[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14847[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14848[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14849[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14850[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14851[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14852[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14853[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14854[label="",style="dashed", color="magenta", weight=3]; 1502 -> 14855[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16126[label="",style="dashed", color="red", weight=0]; 1503[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg Zero) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg Zero) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1503 -> 16149[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16150[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16151[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16152[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16153[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16154[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16155[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16156[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16157[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16158[label="",style="dashed", color="magenta", weight=3]; 1503 -> 16159[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14842[label="",style="dashed", color="red", weight=0]; 1504[label="takeWhile1 (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT))) (fromEnumRatio wy3) (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3))) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3))) (numericEnumFromThenToP1 (fromEnumRatio wy5) (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3) (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)) (fromEnumRatio wy3))",fontsize=16,color="magenta"];1504 -> 14856[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14857[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14858[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14859[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14860[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14861[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14862[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14863[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14864[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14865[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14866[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14867[label="",style="dashed", color="magenta", weight=3]; 1504 -> 14868[label="",style="dashed", color="magenta", weight=3]; 16192[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16192 -> 16235[label="",style="solid", color="black", weight=3]; 16193[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];16193 -> 16236[label="",style="solid", color="black", weight=3]; 16194[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy81000))) LT)",fontsize=16,color="black",shape="box"];16194 -> 16237[label="",style="solid", color="black", weight=3]; 16195[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];16195 -> 16238[label="",style="solid", color="black", weight=3]; 16233 -> 5275[label="",style="dashed", color="red", weight=0]; 16233[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16233 -> 16239[label="",style="dashed", color="magenta", weight=3]; 16233 -> 16240[label="",style="dashed", color="magenta", weight=3]; 16232[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) wy812",fontsize=16,color="burlywood",shape="triangle"];17178[label="wy812/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17178[label="",style="solid", color="burlywood", weight=9]; 17178 -> 16241[label="",style="solid", color="burlywood", weight=3]; 17179[label="wy812/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16232 -> 17179[label="",style="solid", color="burlywood", weight=9]; 17179 -> 16242[label="",style="solid", color="burlywood", weight=3]; 16234[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP0 wy753 (Neg Zero) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16234 -> 16267[label="",style="solid", color="black", weight=3]; 11412[label="wy5",fontsize=16,color="green",shape="box"];11413[label="wy5",fontsize=16,color="green",shape="box"];11414[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17180[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17180[label="",style="solid", color="burlywood", weight=9]; 17180 -> 11487[label="",style="solid", color="burlywood", weight=3]; 17181[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11414 -> 17181[label="",style="solid", color="burlywood", weight=9]; 17181 -> 11488[label="",style="solid", color="burlywood", weight=3]; 11415[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero wy728))) wy737) LT)) wy738)",fontsize=16,color="burlywood",shape="box"];17182[label="wy728/Succ wy7280",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17182[label="",style="solid", color="burlywood", weight=9]; 17182 -> 11489[label="",style="solid", color="burlywood", weight=3]; 17183[label="wy728/Zero",fontsize=10,color="white",style="solid",shape="box"];11415 -> 17183[label="",style="solid", color="burlywood", weight=9]; 17183 -> 11490[label="",style="solid", color="burlywood", weight=3]; 12620 -> 5128[label="",style="dashed", color="red", weight=0]; 12620[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12620 -> 12658[label="",style="dashed", color="magenta", weight=3]; 12620 -> 12659[label="",style="dashed", color="magenta", weight=3]; 12621 -> 2355[label="",style="dashed", color="red", weight=0]; 12621[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12622 -> 2355[label="",style="dashed", color="red", weight=0]; 12622[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12622 -> 12660[label="",style="dashed", color="magenta", weight=3]; 12623 -> 12661[label="",style="dashed", color="red", weight=0]; 12623[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12623 -> 12662[label="",style="dashed", color="magenta", weight=3]; 12623 -> 12663[label="",style="dashed", color="magenta", weight=3]; 12624 -> 5128[label="",style="dashed", color="red", weight=0]; 12624[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12624 -> 12674[label="",style="dashed", color="magenta", weight=3]; 12624 -> 12675[label="",style="dashed", color="magenta", weight=3]; 12625 -> 2355[label="",style="dashed", color="red", weight=0]; 12625[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12626 -> 12661[label="",style="dashed", color="red", weight=0]; 12626[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12626 -> 12664[label="",style="dashed", color="magenta", weight=3]; 12626 -> 12665[label="",style="dashed", color="magenta", weight=3]; 12627 -> 12676[label="",style="dashed", color="red", weight=0]; 12627[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12627 -> 12677[label="",style="dashed", color="magenta", weight=3]; 12627 -> 12678[label="",style="dashed", color="magenta", weight=3]; 12627 -> 12679[label="",style="dashed", color="magenta", weight=3]; 12628 -> 2355[label="",style="dashed", color="red", weight=0]; 12628[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12629 -> 2355[label="",style="dashed", color="red", weight=0]; 12629[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12630 -> 5128[label="",style="dashed", color="red", weight=0]; 12630[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12630 -> 12686[label="",style="dashed", color="magenta", weight=3]; 12630 -> 12687[label="",style="dashed", color="magenta", weight=3]; 12631 -> 2355[label="",style="dashed", color="red", weight=0]; 12631[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12632 -> 2355[label="",style="dashed", color="red", weight=0]; 12632[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12632 -> 12688[label="",style="dashed", color="magenta", weight=3]; 12619[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 wy771 wy738)",fontsize=16,color="burlywood",shape="triangle"];17184[label="wy771/MyTrue",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17184[label="",style="solid", color="burlywood", weight=9]; 17184 -> 12689[label="",style="solid", color="burlywood", weight=3]; 17185[label="wy771/MyFalse",fontsize=10,color="white",style="solid",shape="box"];12619 -> 17185[label="",style="solid", color="burlywood", weight=9]; 17185 -> 12690[label="",style="solid", color="burlywood", weight=3]; 13721 -> 2355[label="",style="dashed", color="red", weight=0]; 13721[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13722 -> 2355[label="",style="dashed", color="red", weight=0]; 13722[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13723 -> 2355[label="",style="dashed", color="red", weight=0]; 13723[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13724 -> 2355[label="",style="dashed", color="red", weight=0]; 13724[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13725 -> 2355[label="",style="dashed", color="red", weight=0]; 13725[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13726 -> 2355[label="",style="dashed", color="red", weight=0]; 13726[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13727 -> 2355[label="",style="dashed", color="red", weight=0]; 13727[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13727 -> 14837[label="",style="dashed", color="magenta", weight=3]; 13728 -> 14825[label="",style="dashed", color="red", weight=0]; 13728[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13728 -> 14828[label="",style="dashed", color="magenta", weight=3]; 13729 -> 2355[label="",style="dashed", color="red", weight=0]; 13729[label="fromEnumRatio wy3",fontsize=16,color="magenta"];13730 -> 2355[label="",style="dashed", color="red", weight=0]; 13730[label="fromEnumRatio wy5",fontsize=16,color="magenta"];13730 -> 14838[label="",style="dashed", color="magenta", weight=3]; 13731 -> 14825[label="",style="dashed", color="red", weight=0]; 13731[label="not (esEsOrdering (primCmpInt (Pos Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];13731 -> 14829[label="",style="dashed", color="magenta", weight=3]; 12633 -> 5128[label="",style="dashed", color="red", weight=0]; 12633[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12633 -> 12691[label="",style="dashed", color="magenta", weight=3]; 12633 -> 12692[label="",style="dashed", color="magenta", weight=3]; 12634 -> 2355[label="",style="dashed", color="red", weight=0]; 12634[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12635 -> 2355[label="",style="dashed", color="red", weight=0]; 12635[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12635 -> 12693[label="",style="dashed", color="magenta", weight=3]; 12636 -> 12661[label="",style="dashed", color="red", weight=0]; 12636[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12636 -> 12666[label="",style="dashed", color="magenta", weight=3]; 12636 -> 12667[label="",style="dashed", color="magenta", weight=3]; 12637 -> 5128[label="",style="dashed", color="red", weight=0]; 12637[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12637 -> 12694[label="",style="dashed", color="magenta", weight=3]; 12637 -> 12695[label="",style="dashed", color="magenta", weight=3]; 12638 -> 2355[label="",style="dashed", color="red", weight=0]; 12638[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12639 -> 12661[label="",style="dashed", color="red", weight=0]; 12639[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];12639 -> 12668[label="",style="dashed", color="magenta", weight=3]; 12639 -> 12669[label="",style="dashed", color="magenta", weight=3]; 12640 -> 12676[label="",style="dashed", color="red", weight=0]; 12640[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];12640 -> 12680[label="",style="dashed", color="magenta", weight=3]; 12640 -> 12681[label="",style="dashed", color="magenta", weight=3]; 12640 -> 12682[label="",style="dashed", color="magenta", weight=3]; 12641 -> 2355[label="",style="dashed", color="red", weight=0]; 12641[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12642 -> 2355[label="",style="dashed", color="red", weight=0]; 12642[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12643 -> 5128[label="",style="dashed", color="red", weight=0]; 12643[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12643 -> 12696[label="",style="dashed", color="magenta", weight=3]; 12643 -> 12697[label="",style="dashed", color="magenta", weight=3]; 12644 -> 2355[label="",style="dashed", color="red", weight=0]; 12644[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12645 -> 2355[label="",style="dashed", color="red", weight=0]; 12645[label="fromEnumRatio wy5",fontsize=16,color="magenta"];12645 -> 12698[label="",style="dashed", color="magenta", weight=3]; 2485[label="truncateM0 wy3 (truncateVu6 wy3)",fontsize=16,color="black",shape="box"];2485 -> 2495[label="",style="solid", color="black", weight=3]; 14907[label="not (esEsOrdering (primCmpNat Zero (Succ wy79400)) LT)",fontsize=16,color="black",shape="box"];14907 -> 14929[label="",style="solid", color="black", weight=3]; 14908[label="not (esEsOrdering EQ LT)",fontsize=16,color="black",shape="triangle"];14908 -> 14930[label="",style="solid", color="black", weight=3]; 14909 -> 13404[label="",style="dashed", color="red", weight=0]; 14909[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14910 -> 14908[label="",style="dashed", color="red", weight=0]; 14910[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];14911[label="wy738",fontsize=16,color="green",shape="box"];14912[label="wy735",fontsize=16,color="green",shape="box"];5275[label="flip ltEsMyInt wy439 wy20",fontsize=16,color="black",shape="triangle"];5275 -> 5323[label="",style="solid", color="black", weight=3]; 14913[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];14913 -> 14931[label="",style="solid", color="black", weight=3]; 14914[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyFalse",fontsize=16,color="black",shape="box"];14914 -> 14932[label="",style="solid", color="black", weight=3]; 14928[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="box"];14928 -> 16074[label="",style="solid", color="black", weight=3]; 11729[label="wy5",fontsize=16,color="green",shape="box"];11730[label="wy5",fontsize=16,color="green",shape="box"];11731[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17186[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17186[label="",style="solid", color="burlywood", weight=9]; 17186 -> 11808[label="",style="solid", color="burlywood", weight=3]; 17187[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11731 -> 17187[label="",style="solid", color="burlywood", weight=9]; 17187 -> 11809[label="",style="solid", color="burlywood", weight=3]; 11732[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero wy746))) wy755) LT)) wy756)",fontsize=16,color="burlywood",shape="box"];17188[label="wy746/Succ wy7460",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17188[label="",style="solid", color="burlywood", weight=9]; 17188 -> 11810[label="",style="solid", color="burlywood", weight=3]; 17189[label="wy746/Zero",fontsize=10,color="white",style="solid",shape="box"];11732 -> 17189[label="",style="solid", color="burlywood", weight=9]; 17189 -> 11811[label="",style="solid", color="burlywood", weight=3]; 14843 -> 2355[label="",style="dashed", color="red", weight=0]; 14843[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14843 -> 14889[label="",style="dashed", color="magenta", weight=3]; 14844 -> 2355[label="",style="dashed", color="red", weight=0]; 14844[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14845 -> 5128[label="",style="dashed", color="red", weight=0]; 14845[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14845 -> 14890[label="",style="dashed", color="magenta", weight=3]; 14845 -> 14891[label="",style="dashed", color="magenta", weight=3]; 14846 -> 5128[label="",style="dashed", color="red", weight=0]; 14846[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14846 -> 14892[label="",style="dashed", color="magenta", weight=3]; 14846 -> 14893[label="",style="dashed", color="magenta", weight=3]; 14847 -> 14894[label="",style="dashed", color="red", weight=0]; 14847[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14847 -> 14895[label="",style="dashed", color="magenta", weight=3]; 14847 -> 14896[label="",style="dashed", color="magenta", weight=3]; 14847 -> 14897[label="",style="dashed", color="magenta", weight=3]; 14848 -> 2355[label="",style="dashed", color="red", weight=0]; 14848[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14849 -> 14915[label="",style="dashed", color="red", weight=0]; 14849[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14849 -> 14916[label="",style="dashed", color="magenta", weight=3]; 14849 -> 14917[label="",style="dashed", color="magenta", weight=3]; 14850 -> 2355[label="",style="dashed", color="red", weight=0]; 14850[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14851 -> 2355[label="",style="dashed", color="red", weight=0]; 14851[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14852 -> 5128[label="",style="dashed", color="red", weight=0]; 14852[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14852 -> 14933[label="",style="dashed", color="magenta", weight=3]; 14852 -> 14934[label="",style="dashed", color="magenta", weight=3]; 14853 -> 2355[label="",style="dashed", color="red", weight=0]; 14853[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14853 -> 14935[label="",style="dashed", color="magenta", weight=3]; 14854 -> 14915[label="",style="dashed", color="red", weight=0]; 14854[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14854 -> 14918[label="",style="dashed", color="magenta", weight=3]; 14854 -> 14919[label="",style="dashed", color="magenta", weight=3]; 14855 -> 2355[label="",style="dashed", color="red", weight=0]; 14855[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14842[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 wy795 wy756)",fontsize=16,color="burlywood",shape="triangle"];17190[label="wy795/MyTrue",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17190[label="",style="solid", color="burlywood", weight=9]; 17190 -> 14936[label="",style="solid", color="burlywood", weight=3]; 17191[label="wy795/MyFalse",fontsize=10,color="white",style="solid",shape="box"];14842 -> 17191[label="",style="solid", color="burlywood", weight=9]; 17191 -> 14937[label="",style="solid", color="burlywood", weight=3]; 16149 -> 16170[label="",style="dashed", color="red", weight=0]; 16149[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16149 -> 16173[label="",style="dashed", color="magenta", weight=3]; 16150 -> 2355[label="",style="dashed", color="red", weight=0]; 16150[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16151 -> 2355[label="",style="dashed", color="red", weight=0]; 16151[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16151 -> 16183[label="",style="dashed", color="magenta", weight=3]; 16152 -> 2355[label="",style="dashed", color="red", weight=0]; 16152[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16153 -> 2355[label="",style="dashed", color="red", weight=0]; 16153[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16154 -> 2355[label="",style="dashed", color="red", weight=0]; 16154[label="fromEnumRatio wy5",fontsize=16,color="magenta"];16154 -> 16184[label="",style="dashed", color="magenta", weight=3]; 16155 -> 2355[label="",style="dashed", color="red", weight=0]; 16155[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16156 -> 16170[label="",style="dashed", color="red", weight=0]; 16156[label="not (esEsOrdering (primCmpInt (Neg Zero) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];16156 -> 16174[label="",style="dashed", color="magenta", weight=3]; 16157 -> 2355[label="",style="dashed", color="red", weight=0]; 16157[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16158 -> 2355[label="",style="dashed", color="red", weight=0]; 16158[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16159 -> 2355[label="",style="dashed", color="red", weight=0]; 16159[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14856 -> 2355[label="",style="dashed", color="red", weight=0]; 14856[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14856 -> 14938[label="",style="dashed", color="magenta", weight=3]; 14857 -> 2355[label="",style="dashed", color="red", weight=0]; 14857[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14858 -> 5128[label="",style="dashed", color="red", weight=0]; 14858[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14858 -> 14939[label="",style="dashed", color="magenta", weight=3]; 14858 -> 14940[label="",style="dashed", color="magenta", weight=3]; 14859 -> 5128[label="",style="dashed", color="red", weight=0]; 14859[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14859 -> 14941[label="",style="dashed", color="magenta", weight=3]; 14859 -> 14942[label="",style="dashed", color="magenta", weight=3]; 14860 -> 14894[label="",style="dashed", color="red", weight=0]; 14860[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) (fromEnumRatio wy3)",fontsize=16,color="magenta"];14860 -> 14898[label="",style="dashed", color="magenta", weight=3]; 14860 -> 14899[label="",style="dashed", color="magenta", weight=3]; 14860 -> 14900[label="",style="dashed", color="magenta", weight=3]; 14861 -> 2355[label="",style="dashed", color="red", weight=0]; 14861[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14862 -> 14915[label="",style="dashed", color="red", weight=0]; 14862[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14862 -> 14920[label="",style="dashed", color="magenta", weight=3]; 14862 -> 14921[label="",style="dashed", color="magenta", weight=3]; 14863 -> 2355[label="",style="dashed", color="red", weight=0]; 14863[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14864 -> 2355[label="",style="dashed", color="red", weight=0]; 14864[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14865 -> 5128[label="",style="dashed", color="red", weight=0]; 14865[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14865 -> 14943[label="",style="dashed", color="magenta", weight=3]; 14865 -> 14944[label="",style="dashed", color="magenta", weight=3]; 14866 -> 2355[label="",style="dashed", color="red", weight=0]; 14866[label="fromEnumRatio wy5",fontsize=16,color="magenta"];14866 -> 14945[label="",style="dashed", color="magenta", weight=3]; 14867 -> 14915[label="",style="dashed", color="red", weight=0]; 14867[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero)))) (fromEnumRatio wy3)) LT)",fontsize=16,color="magenta"];14867 -> 14922[label="",style="dashed", color="magenta", weight=3]; 14867 -> 14923[label="",style="dashed", color="magenta", weight=3]; 14868 -> 2355[label="",style="dashed", color="red", weight=0]; 14868[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16235 -> 14929[label="",style="dashed", color="red", weight=0]; 16235[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16236 -> 14908[label="",style="dashed", color="red", weight=0]; 16236[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16237 -> 14963[label="",style="dashed", color="red", weight=0]; 16237[label="not (esEsOrdering (primCmpNat (Succ wy81000) Zero) LT)",fontsize=16,color="magenta"];16237 -> 16268[label="",style="dashed", color="magenta", weight=3]; 16237 -> 16269[label="",style="dashed", color="magenta", weight=3]; 16238 -> 14908[label="",style="dashed", color="red", weight=0]; 16238[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16239[label="wy756",fontsize=16,color="green",shape="box"];16240[label="wy753",fontsize=16,color="green",shape="box"];16241[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16241 -> 16270[label="",style="solid", color="black", weight=3]; 16242[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyFalse",fontsize=16,color="black",shape="box"];16242 -> 16271[label="",style="solid", color="black", weight=3]; 16267[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="box"];16267 -> 16315[label="",style="solid", color="black", weight=3]; 11487[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11487 -> 11559[label="",style="solid", color="black", weight=3]; 11488[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS (Succ wy7270) Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11488 -> 11560[label="",style="solid", color="black", weight=3]; 11489[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero (Succ wy7280)))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11489 -> 11561[label="",style="solid", color="black", weight=3]; 11490[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS Zero Zero))) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11490 -> 11562[label="",style="solid", color="black", weight=3]; 12658 -> 10455[label="",style="dashed", color="red", weight=0]; 12658[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12658 -> 12699[label="",style="dashed", color="magenta", weight=3]; 12659[label="Zero",fontsize=16,color="green",shape="box"];5128[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="burlywood",shape="triangle"];17192[label="wy160/Succ wy1600",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17192[label="",style="solid", color="burlywood", weight=9]; 17192 -> 6025[label="",style="solid", color="burlywood", weight=3]; 17193[label="wy160/Zero",fontsize=10,color="white",style="solid",shape="box"];5128 -> 17193[label="",style="solid", color="burlywood", weight=9]; 17193 -> 6026[label="",style="solid", color="burlywood", weight=3]; 12660[label="wy5",fontsize=16,color="green",shape="box"];12662 -> 2355[label="",style="dashed", color="red", weight=0]; 12662[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12663 -> 5128[label="",style="dashed", color="red", weight=0]; 12663[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12663 -> 12700[label="",style="dashed", color="magenta", weight=3]; 12663 -> 12701[label="",style="dashed", color="magenta", weight=3]; 12661[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) wy773) LT)",fontsize=16,color="burlywood",shape="triangle"];17194[label="wy773/Pos wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17194[label="",style="solid", color="burlywood", weight=9]; 17194 -> 12702[label="",style="solid", color="burlywood", weight=3]; 17195[label="wy773/Neg wy7730",fontsize=10,color="white",style="solid",shape="box"];12661 -> 17195[label="",style="solid", color="burlywood", weight=9]; 17195 -> 12703[label="",style="solid", color="burlywood", weight=3]; 12674 -> 10455[label="",style="dashed", color="red", weight=0]; 12674[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12674 -> 12704[label="",style="dashed", color="magenta", weight=3]; 12675[label="Zero",fontsize=16,color="green",shape="box"];12664 -> 2355[label="",style="dashed", color="red", weight=0]; 12664[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12665 -> 5128[label="",style="dashed", color="red", weight=0]; 12665[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12665 -> 12705[label="",style="dashed", color="magenta", weight=3]; 12665 -> 12706[label="",style="dashed", color="magenta", weight=3]; 12677 -> 2355[label="",style="dashed", color="red", weight=0]; 12677[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12678 -> 2355[label="",style="dashed", color="red", weight=0]; 12678[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12679 -> 5128[label="",style="dashed", color="red", weight=0]; 12679[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];12679 -> 12707[label="",style="dashed", color="magenta", weight=3]; 12679 -> 12708[label="",style="dashed", color="magenta", weight=3]; 12676[label="psMyInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="triangle"];12676 -> 12709[label="",style="solid", color="black", weight=3]; 12686 -> 10455[label="",style="dashed", color="red", weight=0]; 12686[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12686 -> 13389[label="",style="dashed", color="magenta", weight=3]; 12687[label="Zero",fontsize=16,color="green",shape="box"];12688[label="wy5",fontsize=16,color="green",shape="box"];12689[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];12689 -> 13390[label="",style="solid", color="black", weight=3]; 12690[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ wy760)) wy729 wy772) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP1 wy735 (Pos (Succ wy759)) wy736 MyFalse wy738)",fontsize=16,color="black",shape="box"];12690 -> 13391[label="",style="solid", color="black", weight=3]; 14837[label="wy5",fontsize=16,color="green",shape="box"];14828 -> 2355[label="",style="dashed", color="red", weight=0]; 14828[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14838[label="wy5",fontsize=16,color="green",shape="box"];14829 -> 2355[label="",style="dashed", color="red", weight=0]; 14829[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12691 -> 10455[label="",style="dashed", color="red", weight=0]; 12691[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12691 -> 13392[label="",style="dashed", color="magenta", weight=3]; 12692[label="Zero",fontsize=16,color="green",shape="box"];12693[label="wy5",fontsize=16,color="green",shape="box"];12666 -> 2355[label="",style="dashed", color="red", weight=0]; 12666[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12667 -> 5128[label="",style="dashed", color="red", weight=0]; 12667[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12667 -> 12710[label="",style="dashed", color="magenta", weight=3]; 12667 -> 12711[label="",style="dashed", color="magenta", weight=3]; 12694 -> 10455[label="",style="dashed", color="red", weight=0]; 12694[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12694 -> 13393[label="",style="dashed", color="magenta", weight=3]; 12695[label="Zero",fontsize=16,color="green",shape="box"];12668 -> 2355[label="",style="dashed", color="red", weight=0]; 12668[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12669 -> 5128[label="",style="dashed", color="red", weight=0]; 12669[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12669 -> 12712[label="",style="dashed", color="magenta", weight=3]; 12669 -> 12713[label="",style="dashed", color="magenta", weight=3]; 12680 -> 2355[label="",style="dashed", color="red", weight=0]; 12680[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12681 -> 2355[label="",style="dashed", color="red", weight=0]; 12681[label="fromEnumRatio wy3",fontsize=16,color="magenta"];12682 -> 5128[label="",style="dashed", color="red", weight=0]; 12682[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];12682 -> 12714[label="",style="dashed", color="magenta", weight=3]; 12682 -> 12715[label="",style="dashed", color="magenta", weight=3]; 12696 -> 10455[label="",style="dashed", color="red", weight=0]; 12696[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12696 -> 13394[label="",style="dashed", color="magenta", weight=3]; 12697[label="Zero",fontsize=16,color="green",shape="box"];12698[label="wy5",fontsize=16,color="green",shape="box"];2495[label="truncateM0 wy3 (properFractionRatio wy3)",fontsize=16,color="burlywood",shape="box"];17196[label="wy3/CnPc wy30 wy31",fontsize=10,color="white",style="solid",shape="box"];2495 -> 17196[label="",style="solid", color="burlywood", weight=9]; 17196 -> 2529[label="",style="solid", color="burlywood", weight=3]; 14929[label="not (esEsOrdering LT LT)",fontsize=16,color="black",shape="triangle"];14929 -> 16077[label="",style="solid", color="black", weight=3]; 14930 -> 7428[label="",style="dashed", color="red", weight=0]; 14930[label="not MyFalse",fontsize=16,color="magenta"];13404[label="not (esEsOrdering GT LT)",fontsize=16,color="black",shape="triangle"];13404 -> 13652[label="",style="solid", color="black", weight=3]; 5323[label="ltEsMyInt wy20 wy439",fontsize=16,color="black",shape="box"];5323 -> 5496[label="",style="solid", color="black", weight=3]; 14931[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)))",fontsize=16,color="green",shape="box"];14931 -> 16078[label="",style="dashed", color="green", weight=3]; 14932[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) otherwise",fontsize=16,color="black",shape="box"];14932 -> 16079[label="",style="solid", color="black", weight=3]; 16074[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];16074 -> 16185[label="",style="solid", color="black", weight=3]; 11808[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11808 -> 12494[label="",style="solid", color="black", weight=3]; 11809[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS (Succ wy7450) Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11809 -> 12495[label="",style="solid", color="black", weight=3]; 11810[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero (Succ wy7460)))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11810 -> 12496[label="",style="solid", color="black", weight=3]; 11811[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS Zero Zero))) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];11811 -> 12497[label="",style="solid", color="black", weight=3]; 14889[label="wy5",fontsize=16,color="green",shape="box"];14890 -> 10455[label="",style="dashed", color="red", weight=0]; 14890[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14890 -> 14946[label="",style="dashed", color="magenta", weight=3]; 14891[label="Zero",fontsize=16,color="green",shape="box"];14892 -> 10455[label="",style="dashed", color="red", weight=0]; 14892[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14892 -> 14947[label="",style="dashed", color="magenta", weight=3]; 14893[label="Zero",fontsize=16,color="green",shape="box"];14895 -> 5128[label="",style="dashed", color="red", weight=0]; 14895[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14895 -> 14948[label="",style="dashed", color="magenta", weight=3]; 14895 -> 14949[label="",style="dashed", color="magenta", weight=3]; 14896 -> 2355[label="",style="dashed", color="red", weight=0]; 14896[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14897 -> 2355[label="",style="dashed", color="red", weight=0]; 14897[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14894[label="psMyInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="triangle"];14894 -> 14950[label="",style="solid", color="black", weight=3]; 14916 -> 2355[label="",style="dashed", color="red", weight=0]; 14916[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14917 -> 5128[label="",style="dashed", color="red", weight=0]; 14917[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14917 -> 14951[label="",style="dashed", color="magenta", weight=3]; 14917 -> 14952[label="",style="dashed", color="magenta", weight=3]; 14915[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) wy802) LT)",fontsize=16,color="burlywood",shape="triangle"];17197[label="wy802/Pos wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17197[label="",style="solid", color="burlywood", weight=9]; 17197 -> 14953[label="",style="solid", color="burlywood", weight=3]; 17198[label="wy802/Neg wy8020",fontsize=10,color="white",style="solid",shape="box"];14915 -> 17198[label="",style="solid", color="burlywood", weight=9]; 17198 -> 14954[label="",style="solid", color="burlywood", weight=3]; 14933 -> 13663[label="",style="dashed", color="red", weight=0]; 14933[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14933 -> 16080[label="",style="dashed", color="magenta", weight=3]; 14933 -> 16081[label="",style="dashed", color="magenta", weight=3]; 14934[label="Zero",fontsize=16,color="green",shape="box"];14935[label="wy5",fontsize=16,color="green",shape="box"];14918 -> 2355[label="",style="dashed", color="red", weight=0]; 14918[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14919 -> 5128[label="",style="dashed", color="red", weight=0]; 14919[label="primDivNatS (primMinusNatS (Succ wy40000) Zero) (Succ Zero)",fontsize=16,color="magenta"];14919 -> 14955[label="",style="dashed", color="magenta", weight=3]; 14919 -> 14956[label="",style="dashed", color="magenta", weight=3]; 14936[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];14936 -> 16082[label="",style="solid", color="black", weight=3]; 14937[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ wy782)) wy747 wy796) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP1 wy753 (Neg (Succ wy781)) wy754 MyFalse wy756)",fontsize=16,color="black",shape="box"];14937 -> 16083[label="",style="solid", color="black", weight=3]; 16173 -> 2355[label="",style="dashed", color="red", weight=0]; 16173[label="fromEnumRatio wy3",fontsize=16,color="magenta"];16183[label="wy5",fontsize=16,color="green",shape="box"];16184[label="wy5",fontsize=16,color="green",shape="box"];16174 -> 2355[label="",style="dashed", color="red", weight=0]; 16174[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14938[label="wy5",fontsize=16,color="green",shape="box"];14939 -> 13663[label="",style="dashed", color="red", weight=0]; 14939[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14939 -> 16084[label="",style="dashed", color="magenta", weight=3]; 14939 -> 16085[label="",style="dashed", color="magenta", weight=3]; 14940[label="Zero",fontsize=16,color="green",shape="box"];14941 -> 13663[label="",style="dashed", color="red", weight=0]; 14941[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14941 -> 16086[label="",style="dashed", color="magenta", weight=3]; 14941 -> 16087[label="",style="dashed", color="magenta", weight=3]; 14942[label="Zero",fontsize=16,color="green",shape="box"];14898 -> 5128[label="",style="dashed", color="red", weight=0]; 14898[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14898 -> 14957[label="",style="dashed", color="magenta", weight=3]; 14898 -> 14958[label="",style="dashed", color="magenta", weight=3]; 14899 -> 2355[label="",style="dashed", color="red", weight=0]; 14899[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14900 -> 2355[label="",style="dashed", color="red", weight=0]; 14900[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14920 -> 2355[label="",style="dashed", color="red", weight=0]; 14920[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14921 -> 5128[label="",style="dashed", color="red", weight=0]; 14921[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14921 -> 14959[label="",style="dashed", color="magenta", weight=3]; 14921 -> 14960[label="",style="dashed", color="magenta", weight=3]; 14943 -> 13663[label="",style="dashed", color="red", weight=0]; 14943[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14943 -> 16088[label="",style="dashed", color="magenta", weight=3]; 14943 -> 16089[label="",style="dashed", color="magenta", weight=3]; 14944[label="Zero",fontsize=16,color="green",shape="box"];14945[label="wy5",fontsize=16,color="green",shape="box"];14922 -> 2355[label="",style="dashed", color="red", weight=0]; 14922[label="fromEnumRatio wy3",fontsize=16,color="magenta"];14923 -> 5128[label="",style="dashed", color="red", weight=0]; 14923[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];14923 -> 14961[label="",style="dashed", color="magenta", weight=3]; 14923 -> 14962[label="",style="dashed", color="magenta", weight=3]; 16268[label="Zero",fontsize=16,color="green",shape="box"];16269[label="Succ wy81000",fontsize=16,color="green",shape="box"];14963[label="not (esEsOrdering (primCmpNat wy774 wy77300) LT)",fontsize=16,color="burlywood",shape="triangle"];17199[label="wy774/Succ wy7740",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17199[label="",style="solid", color="burlywood", weight=9]; 17199 -> 16105[label="",style="solid", color="burlywood", weight=3]; 17200[label="wy774/Zero",fontsize=10,color="white",style="solid",shape="box"];14963 -> 17200[label="",style="solid", color="burlywood", weight=9]; 17200 -> 16106[label="",style="solid", color="burlywood", weight=3]; 16270[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)))",fontsize=16,color="green",shape="box"];16270 -> 16316[label="",style="dashed", color="green", weight=3]; 16271[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) otherwise",fontsize=16,color="black",shape="box"];16271 -> 16317[label="",style="solid", color="black", weight=3]; 16315[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16315 -> 16348[label="",style="solid", color="black", weight=3]; 11559 -> 11246[label="",style="dashed", color="red", weight=0]; 11559[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) (primGEqNatS wy7270 wy7280))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11559 -> 11733[label="",style="dashed", color="magenta", weight=3]; 11559 -> 11734[label="",style="dashed", color="magenta", weight=3]; 11560[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="black",shape="triangle"];11560 -> 11735[label="",style="solid", color="black", weight=3]; 11561[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyFalse)) wy737) LT)) wy738)",fontsize=16,color="black",shape="box"];11561 -> 11736[label="",style="solid", color="black", weight=3]; 11562 -> 11560[label="",style="dashed", color="red", weight=0]; 11562[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy729 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy732)) (psMyInt (msMyInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy736 (not (esEsOrdering (primCmpInt (Pos (primDivNatS0 (Succ wy725) (Succ wy726) MyTrue)) wy737) LT)) wy738)",fontsize=16,color="magenta"];12699[label="Succ wy40000",fontsize=16,color="green",shape="box"];10455[label="primMinusNatS wy5570000 Zero",fontsize=16,color="burlywood",shape="triangle"];17201[label="wy5570000/Succ wy55700000",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17201[label="",style="solid", color="burlywood", weight=9]; 17201 -> 10485[label="",style="solid", color="burlywood", weight=3]; 17202[label="wy5570000/Zero",fontsize=10,color="white",style="solid",shape="box"];10455 -> 17202[label="",style="solid", color="burlywood", weight=9]; 17202 -> 10486[label="",style="solid", color="burlywood", weight=3]; 6025[label="primDivNatS (Succ wy1600) (Succ wy1700)",fontsize=16,color="black",shape="box"];6025 -> 7057[label="",style="solid", color="black", weight=3]; 6026[label="primDivNatS Zero (Succ wy1700)",fontsize=16,color="black",shape="box"];6026 -> 7058[label="",style="solid", color="black", weight=3]; 12700 -> 10455[label="",style="dashed", color="red", weight=0]; 12700[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12700 -> 13402[label="",style="dashed", color="magenta", weight=3]; 12701[label="Zero",fontsize=16,color="green",shape="box"];12702[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Pos wy7730)) LT)",fontsize=16,color="black",shape="box"];12702 -> 13403[label="",style="solid", color="black", weight=3]; 12703[label="not (esEsOrdering (primCmpInt (Pos (Succ wy774)) (Neg wy7730)) LT)",fontsize=16,color="black",shape="box"];12703 -> 13404[label="",style="solid", color="black", weight=3]; 12704[label="Succ wy40000",fontsize=16,color="green",shape="box"];12705 -> 10455[label="",style="dashed", color="red", weight=0]; 12705[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12705 -> 13405[label="",style="dashed", color="magenta", weight=3]; 12706[label="Zero",fontsize=16,color="green",shape="box"];12707 -> 10455[label="",style="dashed", color="red", weight=0]; 12707[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];12707 -> 13406[label="",style="dashed", color="magenta", weight=3]; 12708[label="Zero",fontsize=16,color="green",shape="box"];12709[label="primPlusInt (msMyInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="black",shape="box"];12709 -> 13407[label="",style="solid", color="black", weight=3]; 13389[label="Succ wy40000",fontsize=16,color="green",shape="box"];13390 -> 13641[label="",style="dashed", color="red", weight=0]; 13390[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip ltEsMyInt wy735 wy738)",fontsize=16,color="magenta"];13390 -> 13642[label="",style="dashed", color="magenta", weight=3]; 13391[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 otherwise wy738)",fontsize=16,color="black",shape="box"];13391 -> 13643[label="",style="solid", color="black", weight=3]; 13392[label="Zero",fontsize=16,color="green",shape="box"];12710 -> 10455[label="",style="dashed", color="red", weight=0]; 12710[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12710 -> 13408[label="",style="dashed", color="magenta", weight=3]; 12711[label="Zero",fontsize=16,color="green",shape="box"];13393[label="Zero",fontsize=16,color="green",shape="box"];12712 -> 10455[label="",style="dashed", color="red", weight=0]; 12712[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12712 -> 13409[label="",style="dashed", color="magenta", weight=3]; 12713[label="Zero",fontsize=16,color="green",shape="box"];12714 -> 10455[label="",style="dashed", color="red", weight=0]; 12714[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];12714 -> 13410[label="",style="dashed", color="magenta", weight=3]; 12715[label="Zero",fontsize=16,color="green",shape="box"];13394[label="Zero",fontsize=16,color="green",shape="box"];2529[label="truncateM0 (CnPc wy30 wy31) (properFractionRatio (CnPc wy30 wy31))",fontsize=16,color="black",shape="box"];2529 -> 2539[label="",style="solid", color="black", weight=3]; 16077 -> 7423[label="",style="dashed", color="red", weight=0]; 16077[label="not MyTrue",fontsize=16,color="magenta"];7428[label="not MyFalse",fontsize=16,color="black",shape="triangle"];7428 -> 10566[label="",style="solid", color="black", weight=3]; 13652 -> 7428[label="",style="dashed", color="red", weight=0]; 13652[label="not MyFalse",fontsize=16,color="magenta"];5496[label="fsEsOrdering (compareMyInt wy20 wy439) GT",fontsize=16,color="black",shape="box"];5496 -> 5551[label="",style="solid", color="black", weight=3]; 16078[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="black",shape="box"];16078 -> 16186[label="",style="solid", color="black", weight=3]; 16079[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) MyTrue",fontsize=16,color="black",shape="box"];16079 -> 16187[label="",style="solid", color="black", weight=3]; 16185[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16185 -> 16196[label="",style="solid", color="black", weight=3]; 12494 -> 11563[label="",style="dashed", color="red", weight=0]; 12494[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) (primGEqNatS wy7450 wy7460))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12494 -> 12593[label="",style="dashed", color="magenta", weight=3]; 12494 -> 12594[label="",style="dashed", color="magenta", weight=3]; 12495[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="black",shape="triangle"];12495 -> 12595[label="",style="solid", color="black", weight=3]; 12496[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyFalse)) wy755) LT)) wy756)",fontsize=16,color="black",shape="box"];12496 -> 12596[label="",style="solid", color="black", weight=3]; 12497 -> 12495[label="",style="dashed", color="red", weight=0]; 12497[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy747 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy750)) (psMyInt (msMyInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy754 (not (esEsOrdering (primCmpInt (Neg (primDivNatS0 (Succ wy743) (Succ wy744) MyTrue)) wy755) LT)) wy756)",fontsize=16,color="magenta"];14946[label="Succ wy40000",fontsize=16,color="green",shape="box"];14947[label="Succ wy40000",fontsize=16,color="green",shape="box"];14948 -> 13663[label="",style="dashed", color="red", weight=0]; 14948[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14948 -> 16090[label="",style="dashed", color="magenta", weight=3]; 14948 -> 16091[label="",style="dashed", color="magenta", weight=3]; 14949[label="Zero",fontsize=16,color="green",shape="box"];14950[label="primPlusInt (msMyInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="black",shape="box"];14950 -> 16092[label="",style="solid", color="black", weight=3]; 14951 -> 13663[label="",style="dashed", color="red", weight=0]; 14951[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14951 -> 16093[label="",style="dashed", color="magenta", weight=3]; 14951 -> 16094[label="",style="dashed", color="magenta", weight=3]; 14952[label="Zero",fontsize=16,color="green",shape="box"];14953[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Pos wy8020)) LT)",fontsize=16,color="black",shape="box"];14953 -> 16095[label="",style="solid", color="black", weight=3]; 14954[label="not (esEsOrdering (primCmpInt (Neg (Succ wy803)) (Neg wy8020)) LT)",fontsize=16,color="black",shape="box"];14954 -> 16096[label="",style="solid", color="black", weight=3]; 16080[label="Zero",fontsize=16,color="green",shape="box"];16081[label="Succ wy40000",fontsize=16,color="green",shape="box"];13663[label="primMinusNatS wy725 wy726",fontsize=16,color="burlywood",shape="triangle"];17203[label="wy725/Succ wy7250",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17203[label="",style="solid", color="burlywood", weight=9]; 17203 -> 14986[label="",style="solid", color="burlywood", weight=3]; 17204[label="wy725/Zero",fontsize=10,color="white",style="solid",shape="box"];13663 -> 17204[label="",style="solid", color="burlywood", weight=9]; 17204 -> 14987[label="",style="solid", color="burlywood", weight=3]; 14955 -> 13663[label="",style="dashed", color="red", weight=0]; 14955[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="magenta"];14955 -> 16097[label="",style="dashed", color="magenta", weight=3]; 14955 -> 16098[label="",style="dashed", color="magenta", weight=3]; 14956[label="Zero",fontsize=16,color="green",shape="box"];16082 -> 16188[label="",style="dashed", color="red", weight=0]; 16082[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip ltEsMyInt wy753 wy756)",fontsize=16,color="magenta"];16082 -> 16189[label="",style="dashed", color="magenta", weight=3]; 16083[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 otherwise wy756)",fontsize=16,color="black",shape="box"];16083 -> 16197[label="",style="solid", color="black", weight=3]; 16084[label="Zero",fontsize=16,color="green",shape="box"];16085[label="Zero",fontsize=16,color="green",shape="box"];16086[label="Zero",fontsize=16,color="green",shape="box"];16087[label="Zero",fontsize=16,color="green",shape="box"];14957 -> 13663[label="",style="dashed", color="red", weight=0]; 14957[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14957 -> 16099[label="",style="dashed", color="magenta", weight=3]; 14957 -> 16100[label="",style="dashed", color="magenta", weight=3]; 14958[label="Zero",fontsize=16,color="green",shape="box"];14959 -> 13663[label="",style="dashed", color="red", weight=0]; 14959[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14959 -> 16101[label="",style="dashed", color="magenta", weight=3]; 14959 -> 16102[label="",style="dashed", color="magenta", weight=3]; 14960[label="Zero",fontsize=16,color="green",shape="box"];16088[label="Zero",fontsize=16,color="green",shape="box"];16089[label="Zero",fontsize=16,color="green",shape="box"];14961 -> 13663[label="",style="dashed", color="red", weight=0]; 14961[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];14961 -> 16103[label="",style="dashed", color="magenta", weight=3]; 14961 -> 16104[label="",style="dashed", color="magenta", weight=3]; 14962[label="Zero",fontsize=16,color="green",shape="box"];16105[label="not (esEsOrdering (primCmpNat (Succ wy7740) wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17205[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17205[label="",style="solid", color="burlywood", weight=9]; 17205 -> 16211[label="",style="solid", color="burlywood", weight=3]; 17206[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16105 -> 17206[label="",style="solid", color="burlywood", weight=9]; 17206 -> 16212[label="",style="solid", color="burlywood", weight=3]; 16106[label="not (esEsOrdering (primCmpNat Zero wy77300) LT)",fontsize=16,color="burlywood",shape="box"];17207[label="wy77300/Succ wy773000",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17207[label="",style="solid", color="burlywood", weight=9]; 17207 -> 16213[label="",style="solid", color="burlywood", weight=3]; 17208[label="wy77300/Zero",fontsize=10,color="white",style="solid",shape="box"];16106 -> 17208[label="",style="solid", color="burlywood", weight=9]; 17208 -> 16214[label="",style="solid", color="burlywood", weight=3]; 16316[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="black",shape="box"];16316 -> 16349[label="",style="solid", color="black", weight=3]; 16317[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) MyTrue",fontsize=16,color="black",shape="box"];16317 -> 16350[label="",style="solid", color="black", weight=3]; 16348[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16348 -> 16366[label="",style="solid", color="black", weight=3]; 11733[label="wy7270",fontsize=16,color="green",shape="box"];11734[label="wy7280",fontsize=16,color="green",shape="box"];11735 -> 12619[label="",style="dashed", color="red", weight=0]; 11735[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy729 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy732)) (psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy736 (not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)) wy738)",fontsize=16,color="magenta"];11735 -> 12652[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12653[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12654[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12655[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12656[label="",style="dashed", color="magenta", weight=3]; 11735 -> 12657[label="",style="dashed", color="magenta", weight=3]; 11736 -> 13676[label="",style="dashed", color="red", weight=0]; 11736[label="takeWhile1 (numericEnumFromThenToP1 wy724 (Pos Zero) wy729 (not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (numericEnumFromThenToP1 wy735 (Pos Zero) wy736 (not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)) wy738)",fontsize=16,color="magenta"];11736 -> 13765[label="",style="dashed", color="magenta", weight=3]; 11736 -> 13766[label="",style="dashed", color="magenta", weight=3]; 10485[label="primMinusNatS (Succ wy55700000) Zero",fontsize=16,color="black",shape="box"];10485 -> 10520[label="",style="solid", color="black", weight=3]; 10486[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];10486 -> 10521[label="",style="solid", color="black", weight=3]; 7057[label="primDivNatS0 wy1600 wy1700 (primGEqNatS wy1600 wy1700)",fontsize=16,color="burlywood",shape="box"];17209[label="wy1600/Succ wy16000",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17209[label="",style="solid", color="burlywood", weight=9]; 17209 -> 7151[label="",style="solid", color="burlywood", weight=3]; 17210[label="wy1600/Zero",fontsize=10,color="white",style="solid",shape="box"];7057 -> 17210[label="",style="solid", color="burlywood", weight=9]; 17210 -> 7152[label="",style="solid", color="burlywood", weight=3]; 7058[label="Zero",fontsize=16,color="green",shape="box"];13402[label="Succ wy40000",fontsize=16,color="green",shape="box"];13403[label="not (esEsOrdering (primCmpNat (Succ wy774) wy7730) LT)",fontsize=16,color="burlywood",shape="box"];17211[label="wy7730/Succ wy77300",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17211[label="",style="solid", color="burlywood", weight=9]; 17211 -> 13650[label="",style="solid", color="burlywood", weight=3]; 17212[label="wy7730/Zero",fontsize=10,color="white",style="solid",shape="box"];13403 -> 17212[label="",style="solid", color="burlywood", weight=9]; 17212 -> 13651[label="",style="solid", color="burlywood", weight=3]; 13405[label="Succ wy40000",fontsize=16,color="green",shape="box"];13406[label="Succ wy40000",fontsize=16,color="green",shape="box"];13407[label="primPlusInt (primMinusInt (Pos (Succ wy778)) wy777) wy776",fontsize=16,color="burlywood",shape="box"];17213[label="wy777/Pos wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17213[label="",style="solid", color="burlywood", weight=9]; 17213 -> 13653[label="",style="solid", color="burlywood", weight=3]; 17214[label="wy777/Neg wy7770",fontsize=10,color="white",style="solid",shape="box"];13407 -> 17214[label="",style="solid", color="burlywood", weight=9]; 17214 -> 13654[label="",style="solid", color="burlywood", weight=3]; 13642 -> 5275[label="",style="dashed", color="red", weight=0]; 13642[label="flip ltEsMyInt wy735 wy738",fontsize=16,color="magenta"];13642 -> 13655[label="",style="dashed", color="magenta", weight=3]; 13642 -> 13656[label="",style="dashed", color="magenta", weight=3]; 13641[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy791",fontsize=16,color="burlywood",shape="triangle"];17215[label="wy791/MyTrue",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17215[label="",style="solid", color="burlywood", weight=9]; 17215 -> 13657[label="",style="solid", color="burlywood", weight=3]; 17216[label="wy791/MyFalse",fontsize=10,color="white",style="solid",shape="box"];13641 -> 17216[label="",style="solid", color="burlywood", weight=9]; 17216 -> 13658[label="",style="solid", color="burlywood", weight=3]; 13643[label="takeWhile1 (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (numericEnumFromThenToP0 wy735 (Pos (Succ wy759)) wy736 MyTrue wy738)",fontsize=16,color="black",shape="box"];13643 -> 14839[label="",style="solid", color="black", weight=3]; 13408[label="Zero",fontsize=16,color="green",shape="box"];13409[label="Zero",fontsize=16,color="green",shape="box"];13410[label="Zero",fontsize=16,color="green",shape="box"];2539[label="truncateM0 (CnPc wy30 wy31) (Tup2 (properFractionQ wy30 wy31) (CnPc (properFractionR wy30 wy31) wy31))",fontsize=16,color="black",shape="box"];2539 -> 2551[label="",style="solid", color="black", weight=3]; 7423[label="not MyTrue",fontsize=16,color="black",shape="triangle"];7423 -> 10562[label="",style="solid", color="black", weight=3]; 10566[label="MyTrue",fontsize=16,color="green",shape="box"];5551[label="not (esEsOrdering (compareMyInt wy20 wy439) GT)",fontsize=16,color="black",shape="box"];5551 -> 5799[label="",style="solid", color="black", weight=3]; 16186[label="takeWhile (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16186 -> 16198[label="",style="solid", color="black", weight=3]; 16187[label="Nil",fontsize=16,color="green",shape="box"];16196[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16196 -> 16243[label="",style="solid", color="black", weight=3]; 12593[label="wy7460",fontsize=16,color="green",shape="box"];12594[label="wy7450",fontsize=16,color="green",shape="box"];12595 -> 14842[label="",style="dashed", color="red", weight=0]; 12595[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy747 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy750)) (psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy754 (not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)) wy756)",fontsize=16,color="magenta"];12595 -> 14875[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14876[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14877[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14878[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14879[label="",style="dashed", color="magenta", weight=3]; 12595 -> 14880[label="",style="dashed", color="magenta", weight=3]; 12596 -> 16126[label="",style="dashed", color="red", weight=0]; 12596[label="takeWhile1 (numericEnumFromThenToP1 wy742 (Neg Zero) wy747 (not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (numericEnumFromThenToP1 wy753 (Neg Zero) wy754 (not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)) wy756)",fontsize=16,color="magenta"];12596 -> 16160[label="",style="dashed", color="magenta", weight=3]; 12596 -> 16161[label="",style="dashed", color="magenta", weight=3]; 16090[label="Zero",fontsize=16,color="green",shape="box"];16091[label="Succ wy40000",fontsize=16,color="green",shape="box"];16092[label="primPlusInt (primMinusInt (Neg (Succ wy799)) wy798) wy797",fontsize=16,color="burlywood",shape="box"];17217[label="wy798/Pos wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17217[label="",style="solid", color="burlywood", weight=9]; 17217 -> 16199[label="",style="solid", color="burlywood", weight=3]; 17218[label="wy798/Neg wy7980",fontsize=10,color="white",style="solid",shape="box"];16092 -> 17218[label="",style="solid", color="burlywood", weight=9]; 17218 -> 16200[label="",style="solid", color="burlywood", weight=3]; 16093[label="Zero",fontsize=16,color="green",shape="box"];16094[label="Succ wy40000",fontsize=16,color="green",shape="box"];16095 -> 14929[label="",style="dashed", color="red", weight=0]; 16095[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16096 -> 14963[label="",style="dashed", color="red", weight=0]; 16096[label="not (esEsOrdering (primCmpNat wy8020 (Succ wy803)) LT)",fontsize=16,color="magenta"];16096 -> 16201[label="",style="dashed", color="magenta", weight=3]; 16096 -> 16202[label="",style="dashed", color="magenta", weight=3]; 14986[label="primMinusNatS (Succ wy7250) wy726",fontsize=16,color="burlywood",shape="box"];17219[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17219[label="",style="solid", color="burlywood", weight=9]; 17219 -> 16203[label="",style="solid", color="burlywood", weight=3]; 17220[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14986 -> 17220[label="",style="solid", color="burlywood", weight=9]; 17220 -> 16204[label="",style="solid", color="burlywood", weight=3]; 14987[label="primMinusNatS Zero wy726",fontsize=16,color="burlywood",shape="box"];17221[label="wy726/Succ wy7260",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17221[label="",style="solid", color="burlywood", weight=9]; 17221 -> 16205[label="",style="solid", color="burlywood", weight=3]; 17222[label="wy726/Zero",fontsize=10,color="white",style="solid",shape="box"];14987 -> 17222[label="",style="solid", color="burlywood", weight=9]; 17222 -> 16206[label="",style="solid", color="burlywood", weight=3]; 16097[label="Zero",fontsize=16,color="green",shape="box"];16098[label="Succ wy40000",fontsize=16,color="green",shape="box"];16189 -> 5275[label="",style="dashed", color="red", weight=0]; 16189[label="flip ltEsMyInt wy753 wy756",fontsize=16,color="magenta"];16189 -> 16207[label="",style="dashed", color="magenta", weight=3]; 16189 -> 16208[label="",style="dashed", color="magenta", weight=3]; 16188[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy811",fontsize=16,color="burlywood",shape="triangle"];17223[label="wy811/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17223[label="",style="solid", color="burlywood", weight=9]; 17223 -> 16209[label="",style="solid", color="burlywood", weight=3]; 17224[label="wy811/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16188 -> 17224[label="",style="solid", color="burlywood", weight=9]; 17224 -> 16210[label="",style="solid", color="burlywood", weight=3]; 16197[label="takeWhile1 (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (numericEnumFromThenToP0 wy753 (Neg (Succ wy781)) wy754 MyTrue wy756)",fontsize=16,color="black",shape="box"];16197 -> 16244[label="",style="solid", color="black", weight=3]; 16099[label="Zero",fontsize=16,color="green",shape="box"];16100[label="Zero",fontsize=16,color="green",shape="box"];16101[label="Zero",fontsize=16,color="green",shape="box"];16102[label="Zero",fontsize=16,color="green",shape="box"];16103[label="Zero",fontsize=16,color="green",shape="box"];16104[label="Zero",fontsize=16,color="green",shape="box"];16211[label="not (esEsOrdering (primCmpNat (Succ wy7740) (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16211 -> 16254[label="",style="solid", color="black", weight=3]; 16212[label="not (esEsOrdering (primCmpNat (Succ wy7740) Zero) LT)",fontsize=16,color="black",shape="box"];16212 -> 16255[label="",style="solid", color="black", weight=3]; 16213[label="not (esEsOrdering (primCmpNat Zero (Succ wy773000)) LT)",fontsize=16,color="black",shape="box"];16213 -> 16256[label="",style="solid", color="black", weight=3]; 16214[label="not (esEsOrdering (primCmpNat Zero Zero) LT)",fontsize=16,color="black",shape="box"];16214 -> 16257[label="",style="solid", color="black", weight=3]; 16349[label="takeWhile (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16349 -> 16367[label="",style="solid", color="black", weight=3]; 16350[label="Nil",fontsize=16,color="green",shape="box"];16366[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16366 -> 16446[label="",style="solid", color="black", weight=3]; 12652 -> 5128[label="",style="dashed", color="red", weight=0]; 12652[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12652 -> 13413[label="",style="dashed", color="magenta", weight=3]; 12652 -> 13414[label="",style="dashed", color="magenta", weight=3]; 12653 -> 12661[label="",style="dashed", color="red", weight=0]; 12653[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy730) LT)",fontsize=16,color="magenta"];12653 -> 12670[label="",style="dashed", color="magenta", weight=3]; 12653 -> 12671[label="",style="dashed", color="magenta", weight=3]; 12654 -> 5128[label="",style="dashed", color="red", weight=0]; 12654[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12654 -> 13415[label="",style="dashed", color="magenta", weight=3]; 12654 -> 13416[label="",style="dashed", color="magenta", weight=3]; 12655 -> 12661[label="",style="dashed", color="red", weight=0]; 12655[label="not (esEsOrdering (primCmpInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy737) LT)",fontsize=16,color="magenta"];12655 -> 12672[label="",style="dashed", color="magenta", weight=3]; 12655 -> 12673[label="",style="dashed", color="magenta", weight=3]; 12656 -> 12676[label="",style="dashed", color="red", weight=0]; 12656[label="psMyInt (msMyInt (Pos (Succ (primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))))) wy733) wy734",fontsize=16,color="magenta"];12656 -> 12683[label="",style="dashed", color="magenta", weight=3]; 12656 -> 12684[label="",style="dashed", color="magenta", weight=3]; 12656 -> 12685[label="",style="dashed", color="magenta", weight=3]; 12657 -> 5128[label="",style="dashed", color="red", weight=0]; 12657[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12657 -> 13417[label="",style="dashed", color="magenta", weight=3]; 12657 -> 13418[label="",style="dashed", color="magenta", weight=3]; 13765 -> 14825[label="",style="dashed", color="red", weight=0]; 13765[label="not (esEsOrdering (primCmpInt (Pos Zero) wy730) LT)",fontsize=16,color="magenta"];13765 -> 14830[label="",style="dashed", color="magenta", weight=3]; 13766 -> 14825[label="",style="dashed", color="red", weight=0]; 13766[label="not (esEsOrdering (primCmpInt (Pos Zero) wy737) LT)",fontsize=16,color="magenta"];13766 -> 14831[label="",style="dashed", color="magenta", weight=3]; 10520[label="Succ wy55700000",fontsize=16,color="green",shape="box"];10521[label="Zero",fontsize=16,color="green",shape="box"];7151[label="primDivNatS0 (Succ wy16000) wy1700 (primGEqNatS (Succ wy16000) wy1700)",fontsize=16,color="burlywood",shape="box"];17225[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17225[label="",style="solid", color="burlywood", weight=9]; 17225 -> 7184[label="",style="solid", color="burlywood", weight=3]; 17226[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7151 -> 17226[label="",style="solid", color="burlywood", weight=9]; 17226 -> 7185[label="",style="solid", color="burlywood", weight=3]; 7152[label="primDivNatS0 Zero wy1700 (primGEqNatS Zero wy1700)",fontsize=16,color="burlywood",shape="box"];17227[label="wy1700/Succ wy17000",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17227[label="",style="solid", color="burlywood", weight=9]; 17227 -> 7186[label="",style="solid", color="burlywood", weight=3]; 17228[label="wy1700/Zero",fontsize=10,color="white",style="solid",shape="box"];7152 -> 17228[label="",style="solid", color="burlywood", weight=9]; 17228 -> 7187[label="",style="solid", color="burlywood", weight=3]; 13650[label="not (esEsOrdering (primCmpNat (Succ wy774) (Succ wy77300)) LT)",fontsize=16,color="black",shape="box"];13650 -> 14963[label="",style="solid", color="black", weight=3]; 13651[label="not (esEsOrdering (primCmpNat (Succ wy774) Zero) LT)",fontsize=16,color="black",shape="box"];13651 -> 14964[label="",style="solid", color="black", weight=3]; 13653[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Pos wy7770)) wy776",fontsize=16,color="black",shape="box"];13653 -> 14965[label="",style="solid", color="black", weight=3]; 13654[label="primPlusInt (primMinusInt (Pos (Succ wy778)) (Neg wy7770)) wy776",fontsize=16,color="black",shape="box"];13654 -> 14966[label="",style="solid", color="black", weight=3]; 13655[label="wy738",fontsize=16,color="green",shape="box"];13656[label="wy735",fontsize=16,color="green",shape="box"];13657[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];13657 -> 14967[label="",style="solid", color="black", weight=3]; 13658[label="takeWhile1 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];13658 -> 14968[label="",style="solid", color="black", weight=3]; 14839[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (flip gtEsMyInt wy735 wy738)",fontsize=16,color="black",shape="triangle"];14839 -> 14969[label="",style="solid", color="black", weight=3]; 2551[label="properFractionQ wy30 wy31",fontsize=16,color="black",shape="box"];2551 -> 2559[label="",style="solid", color="black", weight=3]; 10562[label="MyFalse",fontsize=16,color="green",shape="box"];5799[label="not (esEsOrdering (primCmpInt wy20 wy439) GT)",fontsize=16,color="burlywood",shape="box"];17229[label="wy20/Pos wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17229[label="",style="solid", color="burlywood", weight=9]; 17229 -> 6034[label="",style="solid", color="burlywood", weight=3]; 17230[label="wy20/Neg wy200",fontsize=10,color="white",style="solid",shape="box"];5799 -> 17230[label="",style="solid", color="burlywood", weight=9]; 17230 -> 6035[label="",style="solid", color="burlywood", weight=3]; 16198[label="takeWhile2 (flip ltEsMyInt wy735) (Cons (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))))",fontsize=16,color="black",shape="box"];16198 -> 16245[label="",style="solid", color="black", weight=3]; 16243[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17231[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17231[label="",style="solid", color="burlywood", weight=9]; 17231 -> 16272[label="",style="solid", color="burlywood", weight=3]; 17232[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16243 -> 17232[label="",style="solid", color="burlywood", weight=9]; 17232 -> 16273[label="",style="solid", color="burlywood", weight=3]; 14875 -> 5128[label="",style="dashed", color="red", weight=0]; 14875[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14875 -> 14970[label="",style="dashed", color="magenta", weight=3]; 14875 -> 14971[label="",style="dashed", color="magenta", weight=3]; 14876 -> 5128[label="",style="dashed", color="red", weight=0]; 14876[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14876 -> 14972[label="",style="dashed", color="magenta", weight=3]; 14876 -> 14973[label="",style="dashed", color="magenta", weight=3]; 14877 -> 14894[label="",style="dashed", color="red", weight=0]; 14877[label="psMyInt (msMyInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy751) wy752",fontsize=16,color="magenta"];14877 -> 14901[label="",style="dashed", color="magenta", weight=3]; 14877 -> 14902[label="",style="dashed", color="magenta", weight=3]; 14877 -> 14903[label="",style="dashed", color="magenta", weight=3]; 14878 -> 14915[label="",style="dashed", color="red", weight=0]; 14878[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy755) LT)",fontsize=16,color="magenta"];14878 -> 14924[label="",style="dashed", color="magenta", weight=3]; 14878 -> 14925[label="",style="dashed", color="magenta", weight=3]; 14879 -> 5128[label="",style="dashed", color="red", weight=0]; 14879[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14879 -> 14974[label="",style="dashed", color="magenta", weight=3]; 14879 -> 14975[label="",style="dashed", color="magenta", weight=3]; 14880 -> 14915[label="",style="dashed", color="red", weight=0]; 14880[label="not (esEsOrdering (primCmpInt (Neg (Succ (primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))))) wy748) LT)",fontsize=16,color="magenta"];14880 -> 14926[label="",style="dashed", color="magenta", weight=3]; 14880 -> 14927[label="",style="dashed", color="magenta", weight=3]; 16160 -> 16170[label="",style="dashed", color="red", weight=0]; 16160[label="not (esEsOrdering (primCmpInt (Neg Zero) wy748) LT)",fontsize=16,color="magenta"];16160 -> 16175[label="",style="dashed", color="magenta", weight=3]; 16161 -> 16170[label="",style="dashed", color="red", weight=0]; 16161[label="not (esEsOrdering (primCmpInt (Neg Zero) wy755) LT)",fontsize=16,color="magenta"];16161 -> 16176[label="",style="dashed", color="magenta", weight=3]; 16199[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Pos wy7980)) wy797",fontsize=16,color="black",shape="box"];16199 -> 16246[label="",style="solid", color="black", weight=3]; 16200[label="primPlusInt (primMinusInt (Neg (Succ wy799)) (Neg wy7980)) wy797",fontsize=16,color="black",shape="box"];16200 -> 16247[label="",style="solid", color="black", weight=3]; 16201[label="Succ wy803",fontsize=16,color="green",shape="box"];16202[label="wy8020",fontsize=16,color="green",shape="box"];16203[label="primMinusNatS (Succ wy7250) (Succ wy7260)",fontsize=16,color="black",shape="box"];16203 -> 16248[label="",style="solid", color="black", weight=3]; 16204[label="primMinusNatS (Succ wy7250) Zero",fontsize=16,color="black",shape="box"];16204 -> 16249[label="",style="solid", color="black", weight=3]; 16205[label="primMinusNatS Zero (Succ wy7260)",fontsize=16,color="black",shape="box"];16205 -> 16250[label="",style="solid", color="black", weight=3]; 16206[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];16206 -> 16251[label="",style="solid", color="black", weight=3]; 16207[label="wy756",fontsize=16,color="green",shape="box"];16208[label="wy753",fontsize=16,color="green",shape="box"];16209[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16209 -> 16252[label="",style="solid", color="black", weight=3]; 16210[label="takeWhile1 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16210 -> 16253[label="",style="solid", color="black", weight=3]; 16244[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (flip gtEsMyInt wy753 wy756)",fontsize=16,color="black",shape="triangle"];16244 -> 16274[label="",style="solid", color="black", weight=3]; 16254 -> 14963[label="",style="dashed", color="red", weight=0]; 16254[label="not (esEsOrdering (primCmpNat wy7740 wy773000) LT)",fontsize=16,color="magenta"];16254 -> 16289[label="",style="dashed", color="magenta", weight=3]; 16254 -> 16290[label="",style="dashed", color="magenta", weight=3]; 16255 -> 13404[label="",style="dashed", color="red", weight=0]; 16255[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16256 -> 14929[label="",style="dashed", color="red", weight=0]; 16256[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16257 -> 14908[label="",style="dashed", color="red", weight=0]; 16257[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16367[label="takeWhile2 (flip ltEsMyInt wy753) (Cons (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))))",fontsize=16,color="black",shape="box"];16367 -> 16447[label="",style="solid", color="black", weight=3]; 16446[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17233[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17233[label="",style="solid", color="burlywood", weight=9]; 17233 -> 16453[label="",style="solid", color="burlywood", weight=3]; 17234[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16446 -> 17234[label="",style="solid", color="burlywood", weight=9]; 17234 -> 16454[label="",style="solid", color="burlywood", weight=3]; 13413[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="black",shape="triangle"];13413 -> 13663[label="",style="solid", color="black", weight=3]; 13414[label="Succ wy726",fontsize=16,color="green",shape="box"];12670[label="wy730",fontsize=16,color="green",shape="box"];12671 -> 5128[label="",style="dashed", color="red", weight=0]; 12671[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12671 -> 13429[label="",style="dashed", color="magenta", weight=3]; 12671 -> 13430[label="",style="dashed", color="magenta", weight=3]; 13415 -> 13413[label="",style="dashed", color="red", weight=0]; 13415[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13416[label="Succ wy726",fontsize=16,color="green",shape="box"];12672[label="wy737",fontsize=16,color="green",shape="box"];12673 -> 5128[label="",style="dashed", color="red", weight=0]; 12673[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12673 -> 13431[label="",style="dashed", color="magenta", weight=3]; 12673 -> 13432[label="",style="dashed", color="magenta", weight=3]; 12683[label="wy734",fontsize=16,color="green",shape="box"];12684[label="wy733",fontsize=16,color="green",shape="box"];12685 -> 5128[label="",style="dashed", color="red", weight=0]; 12685[label="primDivNatS (primMinusNatS (Succ wy725) (Succ wy726)) (Succ (Succ wy726))",fontsize=16,color="magenta"];12685 -> 13433[label="",style="dashed", color="magenta", weight=3]; 12685 -> 13434[label="",style="dashed", color="magenta", weight=3]; 13417 -> 13413[label="",style="dashed", color="red", weight=0]; 13417[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13418[label="Succ wy726",fontsize=16,color="green",shape="box"];14830[label="wy730",fontsize=16,color="green",shape="box"];14831[label="wy737",fontsize=16,color="green",shape="box"];7184[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS (Succ wy16000) (Succ wy17000))",fontsize=16,color="black",shape="box"];7184 -> 7244[label="",style="solid", color="black", weight=3]; 7185[label="primDivNatS0 (Succ wy16000) Zero (primGEqNatS (Succ wy16000) Zero)",fontsize=16,color="black",shape="box"];7185 -> 7245[label="",style="solid", color="black", weight=3]; 7186[label="primDivNatS0 Zero (Succ wy17000) (primGEqNatS Zero (Succ wy17000))",fontsize=16,color="black",shape="box"];7186 -> 7246[label="",style="solid", color="black", weight=3]; 7187[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];7187 -> 7247[label="",style="solid", color="black", weight=3]; 14964 -> 13404[label="",style="dashed", color="red", weight=0]; 14964[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];14965[label="primPlusInt (primMinusNat (Succ wy778) wy7770) wy776",fontsize=16,color="burlywood",shape="box"];17235[label="wy7770/Succ wy77700",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17235[label="",style="solid", color="burlywood", weight=9]; 17235 -> 16107[label="",style="solid", color="burlywood", weight=3]; 17236[label="wy7770/Zero",fontsize=10,color="white",style="solid",shape="box"];14965 -> 17236[label="",style="solid", color="burlywood", weight=9]; 17236 -> 16108[label="",style="solid", color="burlywood", weight=3]; 14966 -> 16562[label="",style="dashed", color="red", weight=0]; 14966[label="primPlusInt (Pos (primPlusNat (Succ wy778) wy7770)) wy776",fontsize=16,color="magenta"];14966 -> 16563[label="",style="dashed", color="magenta", weight=3]; 14966 -> 16564[label="",style="dashed", color="magenta", weight=3]; 14967[label="Cons wy731 (takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];14967 -> 16111[label="",style="dashed", color="green", weight=3]; 14968[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];14968 -> 16112[label="",style="solid", color="black", weight=3]; 14969[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (gtEsMyInt wy738 wy735)",fontsize=16,color="black",shape="box"];14969 -> 16113[label="",style="solid", color="black", weight=3]; 2559[label="properFractionQ1 wy30 wy31 (properFractionVu30 wy30 wy31)",fontsize=16,color="black",shape="box"];2559 -> 2567[label="",style="solid", color="black", weight=3]; 6034[label="not (esEsOrdering (primCmpInt (Pos wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17237[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17237[label="",style="solid", color="burlywood", weight=9]; 17237 -> 7263[label="",style="solid", color="burlywood", weight=3]; 17238[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6034 -> 17238[label="",style="solid", color="burlywood", weight=9]; 17238 -> 7264[label="",style="solid", color="burlywood", weight=3]; 6035[label="not (esEsOrdering (primCmpInt (Neg wy200) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17239[label="wy200/Succ wy2000",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17239[label="",style="solid", color="burlywood", weight=9]; 17239 -> 7265[label="",style="solid", color="burlywood", weight=3]; 17240[label="wy200/Zero",fontsize=10,color="white",style="solid",shape="box"];6035 -> 17240[label="",style="solid", color="burlywood", weight=9]; 17240 -> 7266[label="",style="solid", color="burlywood", weight=3]; 16245 -> 14904[label="",style="dashed", color="red", weight=0]; 16245[label="takeWhile1 (flip ltEsMyInt wy735) (psMyInt (msMyInt (Pos Zero) wy733) wy734) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) (psMyInt (msMyInt (Pos Zero) wy733) wy734))) (flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734))",fontsize=16,color="magenta"];16245 -> 16275[label="",style="dashed", color="magenta", weight=3]; 16245 -> 16276[label="",style="dashed", color="magenta", weight=3]; 16245 -> 16277[label="",style="dashed", color="magenta", weight=3]; 16245 -> 16278[label="",style="dashed", color="magenta", weight=3]; 16272[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17241[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17241[label="",style="solid", color="burlywood", weight=9]; 17241 -> 16318[label="",style="solid", color="burlywood", weight=3]; 17242[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16272 -> 17242[label="",style="solid", color="burlywood", weight=9]; 17242 -> 16319[label="",style="solid", color="burlywood", weight=3]; 16273[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17243[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17243[label="",style="solid", color="burlywood", weight=9]; 17243 -> 16320[label="",style="solid", color="burlywood", weight=3]; 17244[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16273 -> 17244[label="",style="solid", color="burlywood", weight=9]; 17244 -> 16321[label="",style="solid", color="burlywood", weight=3]; 14970 -> 13663[label="",style="dashed", color="red", weight=0]; 14970[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14970 -> 16114[label="",style="dashed", color="magenta", weight=3]; 14970 -> 16115[label="",style="dashed", color="magenta", weight=3]; 14971[label="Succ wy744",fontsize=16,color="green",shape="box"];14972 -> 13663[label="",style="dashed", color="red", weight=0]; 14972[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14972 -> 16116[label="",style="dashed", color="magenta", weight=3]; 14972 -> 16117[label="",style="dashed", color="magenta", weight=3]; 14973[label="Succ wy744",fontsize=16,color="green",shape="box"];14901 -> 5128[label="",style="dashed", color="red", weight=0]; 14901[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14901 -> 14976[label="",style="dashed", color="magenta", weight=3]; 14901 -> 14977[label="",style="dashed", color="magenta", weight=3]; 14902[label="wy752",fontsize=16,color="green",shape="box"];14903[label="wy751",fontsize=16,color="green",shape="box"];14924[label="wy755",fontsize=16,color="green",shape="box"];14925 -> 5128[label="",style="dashed", color="red", weight=0]; 14925[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14925 -> 14978[label="",style="dashed", color="magenta", weight=3]; 14925 -> 14979[label="",style="dashed", color="magenta", weight=3]; 14974 -> 13663[label="",style="dashed", color="red", weight=0]; 14974[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14974 -> 16118[label="",style="dashed", color="magenta", weight=3]; 14974 -> 16119[label="",style="dashed", color="magenta", weight=3]; 14975[label="Succ wy744",fontsize=16,color="green",shape="box"];14926[label="wy748",fontsize=16,color="green",shape="box"];14927 -> 5128[label="",style="dashed", color="red", weight=0]; 14927[label="primDivNatS (primMinusNatS (Succ wy743) (Succ wy744)) (Succ (Succ wy744))",fontsize=16,color="magenta"];14927 -> 14980[label="",style="dashed", color="magenta", weight=3]; 14927 -> 14981[label="",style="dashed", color="magenta", weight=3]; 16175[label="wy748",fontsize=16,color="green",shape="box"];16176[label="wy755",fontsize=16,color="green",shape="box"];16246 -> 16736[label="",style="dashed", color="red", weight=0]; 16246[label="primPlusInt (Neg (primPlusNat (Succ wy799) wy7980)) wy797",fontsize=16,color="magenta"];16246 -> 16737[label="",style="dashed", color="magenta", weight=3]; 16246 -> 16738[label="",style="dashed", color="magenta", weight=3]; 16247 -> 16215[label="",style="dashed", color="red", weight=0]; 16247[label="primPlusInt (primMinusNat wy7980 (Succ wy799)) wy797",fontsize=16,color="magenta"];16247 -> 16281[label="",style="dashed", color="magenta", weight=3]; 16247 -> 16282[label="",style="dashed", color="magenta", weight=3]; 16247 -> 16283[label="",style="dashed", color="magenta", weight=3]; 16248 -> 13663[label="",style="dashed", color="red", weight=0]; 16248[label="primMinusNatS wy7250 wy7260",fontsize=16,color="magenta"];16248 -> 16284[label="",style="dashed", color="magenta", weight=3]; 16248 -> 16285[label="",style="dashed", color="magenta", weight=3]; 16249[label="Succ wy7250",fontsize=16,color="green",shape="box"];16250[label="Zero",fontsize=16,color="green",shape="box"];16251[label="Zero",fontsize=16,color="green",shape="box"];16252[label="Cons wy749 (takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16252 -> 16286[label="",style="dashed", color="green", weight=3]; 16253[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16253 -> 16287[label="",style="solid", color="black", weight=3]; 16274[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (gtEsMyInt wy756 wy753)",fontsize=16,color="black",shape="box"];16274 -> 16322[label="",style="solid", color="black", weight=3]; 16289[label="wy773000",fontsize=16,color="green",shape="box"];16290[label="wy7740",fontsize=16,color="green",shape="box"];16447 -> 16232[label="",style="dashed", color="red", weight=0]; 16447[label="takeWhile1 (flip ltEsMyInt wy753) (psMyInt (msMyInt (Neg Zero) wy751) wy752) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) (psMyInt (msMyInt (Neg Zero) wy751) wy752))) (flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752))",fontsize=16,color="magenta"];16447 -> 16455[label="",style="dashed", color="magenta", weight=3]; 16447 -> 16456[label="",style="dashed", color="magenta", weight=3]; 16447 -> 16457[label="",style="dashed", color="magenta", weight=3]; 16447 -> 16458[label="",style="dashed", color="magenta", weight=3]; 16453[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17245[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17245[label="",style="solid", color="burlywood", weight=9]; 17245 -> 16464[label="",style="solid", color="burlywood", weight=3]; 17246[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16453 -> 17246[label="",style="solid", color="burlywood", weight=9]; 17246 -> 16465[label="",style="solid", color="burlywood", weight=3]; 16454[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17247[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17247[label="",style="solid", color="burlywood", weight=9]; 17247 -> 16466[label="",style="solid", color="burlywood", weight=3]; 17248[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16454 -> 17248[label="",style="solid", color="burlywood", weight=9]; 17248 -> 16467[label="",style="solid", color="burlywood", weight=3]; 13429 -> 13413[label="",style="dashed", color="red", weight=0]; 13429[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13430[label="Succ wy726",fontsize=16,color="green",shape="box"];13431 -> 13413[label="",style="dashed", color="red", weight=0]; 13431[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13432[label="Succ wy726",fontsize=16,color="green",shape="box"];13433 -> 13413[label="",style="dashed", color="red", weight=0]; 13433[label="primMinusNatS (Succ wy725) (Succ wy726)",fontsize=16,color="magenta"];13434[label="Succ wy726",fontsize=16,color="green",shape="box"];7244 -> 17027[label="",style="dashed", color="red", weight=0]; 7244[label="primDivNatS0 (Succ wy16000) (Succ wy17000) (primGEqNatS wy16000 wy17000)",fontsize=16,color="magenta"];7244 -> 17028[label="",style="dashed", color="magenta", weight=3]; 7244 -> 17029[label="",style="dashed", color="magenta", weight=3]; 7244 -> 17030[label="",style="dashed", color="magenta", weight=3]; 7244 -> 17031[label="",style="dashed", color="magenta", weight=3]; 7245[label="primDivNatS0 (Succ wy16000) Zero MyTrue",fontsize=16,color="black",shape="box"];7245 -> 7305[label="",style="solid", color="black", weight=3]; 7246[label="primDivNatS0 Zero (Succ wy17000) MyFalse",fontsize=16,color="black",shape="box"];7246 -> 7306[label="",style="solid", color="black", weight=3]; 7247[label="primDivNatS0 Zero Zero MyTrue",fontsize=16,color="black",shape="box"];7247 -> 7307[label="",style="solid", color="black", weight=3]; 16107[label="primPlusInt (primMinusNat (Succ wy778) (Succ wy77700)) wy776",fontsize=16,color="black",shape="box"];16107 -> 16215[label="",style="solid", color="black", weight=3]; 16108[label="primPlusInt (primMinusNat (Succ wy778) Zero) wy776",fontsize=16,color="black",shape="box"];16108 -> 16216[label="",style="solid", color="black", weight=3]; 16563[label="wy776",fontsize=16,color="green",shape="box"];16564 -> 16336[label="",style="dashed", color="red", weight=0]; 16564[label="primPlusNat (Succ wy778) wy7770",fontsize=16,color="magenta"];16564 -> 16572[label="",style="dashed", color="magenta", weight=3]; 16562[label="primPlusInt (Pos wy824) wy734",fontsize=16,color="burlywood",shape="triangle"];17249[label="wy734/Pos wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17249[label="",style="solid", color="burlywood", weight=9]; 17249 -> 16573[label="",style="solid", color="burlywood", weight=3]; 17250[label="wy734/Neg wy7340",fontsize=10,color="white",style="solid",shape="box"];16562 -> 17250[label="",style="solid", color="burlywood", weight=9]; 17250 -> 16574[label="",style="solid", color="burlywood", weight=3]; 16111[label="takeWhile (flip ltEsMyInt wy735) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16111 -> 16219[label="",style="solid", color="black", weight=3]; 16112[label="takeWhile0 (flip ltEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16112 -> 16220[label="",style="solid", color="black", weight=3]; 16113[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (fsEsOrdering (compareMyInt wy738 wy735) LT)",fontsize=16,color="black",shape="box"];16113 -> 16221[label="",style="solid", color="black", weight=3]; 2567 -> 1994[label="",style="dashed", color="red", weight=0]; 2567[label="properFractionQ1 wy30 wy31 (quotRemMyInt wy30 wy31)",fontsize=16,color="magenta"];2567 -> 3560[label="",style="dashed", color="magenta", weight=3]; 2567 -> 3561[label="",style="dashed", color="magenta", weight=3]; 7263[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17251[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17251[label="",style="solid", color="burlywood", weight=9]; 17251 -> 7318[label="",style="solid", color="burlywood", weight=3]; 17252[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7263 -> 17252[label="",style="solid", color="burlywood", weight=9]; 17252 -> 7319[label="",style="solid", color="burlywood", weight=3]; 7264[label="not (esEsOrdering (primCmpInt (Pos Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17253[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17253[label="",style="solid", color="burlywood", weight=9]; 17253 -> 7320[label="",style="solid", color="burlywood", weight=3]; 17254[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7264 -> 17254[label="",style="solid", color="burlywood", weight=9]; 17254 -> 7321[label="",style="solid", color="burlywood", weight=3]; 7265[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17255[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17255[label="",style="solid", color="burlywood", weight=9]; 17255 -> 7322[label="",style="solid", color="burlywood", weight=3]; 17256[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7265 -> 17256[label="",style="solid", color="burlywood", weight=9]; 17256 -> 7323[label="",style="solid", color="burlywood", weight=3]; 7266[label="not (esEsOrdering (primCmpInt (Neg Zero) wy439) GT)",fontsize=16,color="burlywood",shape="box"];17257[label="wy439/Pos wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17257[label="",style="solid", color="burlywood", weight=9]; 17257 -> 7324[label="",style="solid", color="burlywood", weight=3]; 17258[label="wy439/Neg wy4390",fontsize=10,color="white",style="solid",shape="box"];7266 -> 17258[label="",style="solid", color="burlywood", weight=9]; 17258 -> 7325[label="",style="solid", color="burlywood", weight=3]; 16275[label="wy732",fontsize=16,color="green",shape="box"];16276 -> 5275[label="",style="dashed", color="red", weight=0]; 16276[label="flip ltEsMyInt wy735 (psMyInt (msMyInt (Pos Zero) wy733) wy734)",fontsize=16,color="magenta"];16276 -> 16323[label="",style="dashed", color="magenta", weight=3]; 16276 -> 16324[label="",style="dashed", color="magenta", weight=3]; 16277[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="triangle"];16277 -> 16325[label="",style="solid", color="black", weight=3]; 16278 -> 16277[label="",style="dashed", color="red", weight=0]; 16278[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16318[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17259[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17259[label="",style="solid", color="burlywood", weight=9]; 17259 -> 16351[label="",style="solid", color="burlywood", weight=3]; 17260[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16318 -> 17260[label="",style="solid", color="burlywood", weight=9]; 17260 -> 16352[label="",style="solid", color="burlywood", weight=3]; 16319[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17261[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17261[label="",style="solid", color="burlywood", weight=9]; 17261 -> 16353[label="",style="solid", color="burlywood", weight=3]; 17262[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16319 -> 17262[label="",style="solid", color="burlywood", weight=9]; 17262 -> 16354[label="",style="solid", color="burlywood", weight=3]; 16320[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17263[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17263[label="",style="solid", color="burlywood", weight=9]; 17263 -> 16355[label="",style="solid", color="burlywood", weight=3]; 17264[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16320 -> 17264[label="",style="solid", color="burlywood", weight=9]; 17264 -> 16356[label="",style="solid", color="burlywood", weight=3]; 16321[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17265[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17265[label="",style="solid", color="burlywood", weight=9]; 17265 -> 16357[label="",style="solid", color="burlywood", weight=3]; 17266[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16321 -> 17266[label="",style="solid", color="burlywood", weight=9]; 17266 -> 16358[label="",style="solid", color="burlywood", weight=3]; 16114[label="Succ wy744",fontsize=16,color="green",shape="box"];16115[label="Succ wy743",fontsize=16,color="green",shape="box"];16116[label="Succ wy744",fontsize=16,color="green",shape="box"];16117[label="Succ wy743",fontsize=16,color="green",shape="box"];14976 -> 13663[label="",style="dashed", color="red", weight=0]; 14976[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14976 -> 16120[label="",style="dashed", color="magenta", weight=3]; 14976 -> 16121[label="",style="dashed", color="magenta", weight=3]; 14977[label="Succ wy744",fontsize=16,color="green",shape="box"];14978 -> 13663[label="",style="dashed", color="red", weight=0]; 14978[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14978 -> 16122[label="",style="dashed", color="magenta", weight=3]; 14978 -> 16123[label="",style="dashed", color="magenta", weight=3]; 14979[label="Succ wy744",fontsize=16,color="green",shape="box"];16118[label="Succ wy744",fontsize=16,color="green",shape="box"];16119[label="Succ wy743",fontsize=16,color="green",shape="box"];14980 -> 13663[label="",style="dashed", color="red", weight=0]; 14980[label="primMinusNatS (Succ wy743) (Succ wy744)",fontsize=16,color="magenta"];14980 -> 16124[label="",style="dashed", color="magenta", weight=3]; 14980 -> 16125[label="",style="dashed", color="magenta", weight=3]; 14981[label="Succ wy744",fontsize=16,color="green",shape="box"];16737 -> 16513[label="",style="dashed", color="red", weight=0]; 16737[label="primPlusNat (Succ wy799) wy7980",fontsize=16,color="magenta"];16737 -> 16742[label="",style="dashed", color="magenta", weight=3]; 16737 -> 16743[label="",style="dashed", color="magenta", weight=3]; 16738[label="wy797",fontsize=16,color="green",shape="box"];16736[label="primPlusInt (Neg wy833) wy752",fontsize=16,color="burlywood",shape="triangle"];17267[label="wy752/Pos wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17267[label="",style="solid", color="burlywood", weight=9]; 17267 -> 16744[label="",style="solid", color="burlywood", weight=3]; 17268[label="wy752/Neg wy7520",fontsize=10,color="white",style="solid",shape="box"];16736 -> 17268[label="",style="solid", color="burlywood", weight=9]; 17268 -> 16745[label="",style="solid", color="burlywood", weight=3]; 16281[label="wy797",fontsize=16,color="green",shape="box"];16282[label="Succ wy799",fontsize=16,color="green",shape="box"];16283[label="wy7980",fontsize=16,color="green",shape="box"];16215[label="primPlusInt (primMinusNat wy778 wy77700) wy776",fontsize=16,color="burlywood",shape="triangle"];17269[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17269[label="",style="solid", color="burlywood", weight=9]; 17269 -> 16258[label="",style="solid", color="burlywood", weight=3]; 17270[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16215 -> 17270[label="",style="solid", color="burlywood", weight=9]; 17270 -> 16259[label="",style="solid", color="burlywood", weight=3]; 16284[label="wy7260",fontsize=16,color="green",shape="box"];16285[label="wy7250",fontsize=16,color="green",shape="box"];16286[label="takeWhile (flip ltEsMyInt wy753) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16286 -> 16328[label="",style="solid", color="black", weight=3]; 16287[label="takeWhile0 (flip ltEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16287 -> 16329[label="",style="solid", color="black", weight=3]; 16322[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (fsEsOrdering (compareMyInt wy756 wy753) LT)",fontsize=16,color="black",shape="box"];16322 -> 16359[label="",style="solid", color="black", weight=3]; 16455 -> 5275[label="",style="dashed", color="red", weight=0]; 16455[label="flip ltEsMyInt wy753 (psMyInt (msMyInt (Neg Zero) wy751) wy752)",fontsize=16,color="magenta"];16455 -> 16468[label="",style="dashed", color="magenta", weight=3]; 16455 -> 16469[label="",style="dashed", color="magenta", weight=3]; 16456[label="wy750",fontsize=16,color="green",shape="box"];16457[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="triangle"];16457 -> 16470[label="",style="solid", color="black", weight=3]; 16458 -> 16457[label="",style="dashed", color="red", weight=0]; 16458[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16464[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17271[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17271[label="",style="solid", color="burlywood", weight=9]; 17271 -> 16522[label="",style="solid", color="burlywood", weight=3]; 17272[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16464 -> 17272[label="",style="solid", color="burlywood", weight=9]; 17272 -> 16523[label="",style="solid", color="burlywood", weight=3]; 16465[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17273[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17273[label="",style="solid", color="burlywood", weight=9]; 17273 -> 16524[label="",style="solid", color="burlywood", weight=3]; 17274[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16465 -> 17274[label="",style="solid", color="burlywood", weight=9]; 17274 -> 16525[label="",style="solid", color="burlywood", weight=3]; 16466[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17275[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17275[label="",style="solid", color="burlywood", weight=9]; 17275 -> 16526[label="",style="solid", color="burlywood", weight=3]; 17276[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16466 -> 17276[label="",style="solid", color="burlywood", weight=9]; 17276 -> 16527[label="",style="solid", color="burlywood", weight=3]; 16467[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17277[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17277[label="",style="solid", color="burlywood", weight=9]; 17277 -> 16528[label="",style="solid", color="burlywood", weight=3]; 17278[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16467 -> 17278[label="",style="solid", color="burlywood", weight=9]; 17278 -> 16529[label="",style="solid", color="burlywood", weight=3]; 17028[label="wy16000",fontsize=16,color="green",shape="box"];17029[label="wy16000",fontsize=16,color="green",shape="box"];17030[label="wy17000",fontsize=16,color="green",shape="box"];17031[label="wy17000",fontsize=16,color="green",shape="box"];17027[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy852 wy853)",fontsize=16,color="burlywood",shape="triangle"];17279[label="wy852/Succ wy8520",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17279[label="",style="solid", color="burlywood", weight=9]; 17279 -> 17068[label="",style="solid", color="burlywood", weight=3]; 17280[label="wy852/Zero",fontsize=10,color="white",style="solid",shape="box"];17027 -> 17280[label="",style="solid", color="burlywood", weight=9]; 17280 -> 17069[label="",style="solid", color="burlywood", weight=3]; 7305[label="Succ (primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7305 -> 7338[label="",style="dashed", color="green", weight=3]; 7306[label="Zero",fontsize=16,color="green",shape="box"];7307[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];7307 -> 7339[label="",style="dashed", color="green", weight=3]; 16216 -> 16562[label="",style="dashed", color="red", weight=0]; 16216[label="primPlusInt (Pos (Succ wy778)) wy776",fontsize=16,color="magenta"];16216 -> 16565[label="",style="dashed", color="magenta", weight=3]; 16216 -> 16566[label="",style="dashed", color="magenta", weight=3]; 16572[label="wy7770",fontsize=16,color="green",shape="box"];16336[label="primPlusNat (Succ wy778) wy7760",fontsize=16,color="burlywood",shape="triangle"];17281[label="wy7760/Succ wy77600",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17281[label="",style="solid", color="burlywood", weight=9]; 17281 -> 16405[label="",style="solid", color="burlywood", weight=3]; 17282[label="wy7760/Zero",fontsize=10,color="white",style="solid",shape="box"];16336 -> 17282[label="",style="solid", color="burlywood", weight=9]; 17282 -> 16406[label="",style="solid", color="burlywood", weight=3]; 16573[label="primPlusInt (Pos wy824) (Pos wy7340)",fontsize=16,color="black",shape="box"];16573 -> 16640[label="",style="solid", color="black", weight=3]; 16574[label="primPlusInt (Pos wy824) (Neg wy7340)",fontsize=16,color="black",shape="box"];16574 -> 16641[label="",style="solid", color="black", weight=3]; 16219 -> 16265[label="",style="dashed", color="red", weight=0]; 16219[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16219 -> 16266[label="",style="dashed", color="magenta", weight=3]; 16220[label="Nil",fontsize=16,color="green",shape="box"];16221[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (compareMyInt wy738 wy735) LT))",fontsize=16,color="black",shape="box"];16221 -> 16288[label="",style="solid", color="black", weight=3]; 3560[label="wy30",fontsize=16,color="green",shape="box"];3561[label="wy31",fontsize=16,color="green",shape="box"];1994[label="properFractionQ1 wy16 wy17 (quotRemMyInt wy16 wy17)",fontsize=16,color="black",shape="triangle"];1994 -> 2088[label="",style="solid", color="black", weight=3]; 7318[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7318 -> 7350[label="",style="solid", color="black", weight=3]; 7319[label="not (esEsOrdering (primCmpInt (Pos (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7319 -> 7351[label="",style="solid", color="black", weight=3]; 7320[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17283[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17283[label="",style="solid", color="burlywood", weight=9]; 17283 -> 7352[label="",style="solid", color="burlywood", weight=3]; 17284[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7320 -> 17284[label="",style="solid", color="burlywood", weight=9]; 17284 -> 7353[label="",style="solid", color="burlywood", weight=3]; 7321[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17285[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17285[label="",style="solid", color="burlywood", weight=9]; 17285 -> 7354[label="",style="solid", color="burlywood", weight=3]; 17286[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7321 -> 17286[label="",style="solid", color="burlywood", weight=9]; 17286 -> 7355[label="",style="solid", color="burlywood", weight=3]; 7322[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Pos wy4390)) GT)",fontsize=16,color="black",shape="box"];7322 -> 7356[label="",style="solid", color="black", weight=3]; 7323[label="not (esEsOrdering (primCmpInt (Neg (Succ wy2000)) (Neg wy4390)) GT)",fontsize=16,color="black",shape="box"];7323 -> 7357[label="",style="solid", color="black", weight=3]; 7324[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17287[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17287[label="",style="solid", color="burlywood", weight=9]; 17287 -> 7358[label="",style="solid", color="burlywood", weight=3]; 17288[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7324 -> 17288[label="",style="solid", color="burlywood", weight=9]; 17288 -> 7359[label="",style="solid", color="burlywood", weight=3]; 7325[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy4390)) GT)",fontsize=16,color="burlywood",shape="box"];17289[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17289[label="",style="solid", color="burlywood", weight=9]; 17289 -> 7360[label="",style="solid", color="burlywood", weight=3]; 17290[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7325 -> 17290[label="",style="solid", color="burlywood", weight=9]; 17290 -> 7361[label="",style="solid", color="burlywood", weight=3]; 16323 -> 16277[label="",style="dashed", color="red", weight=0]; 16323[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16324[label="wy735",fontsize=16,color="green",shape="box"];16325[label="primPlusInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="black",shape="box"];16325 -> 16360[label="",style="solid", color="black", weight=3]; 16351[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16351 -> 16368[label="",style="solid", color="black", weight=3]; 16352[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16352 -> 16369[label="",style="solid", color="black", weight=3]; 16353[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17291[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17291[label="",style="solid", color="burlywood", weight=9]; 17291 -> 16370[label="",style="solid", color="burlywood", weight=3]; 17292[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16353 -> 17292[label="",style="solid", color="burlywood", weight=9]; 17292 -> 16371[label="",style="solid", color="burlywood", weight=3]; 16354[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17293[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17293[label="",style="solid", color="burlywood", weight=9]; 17293 -> 16372[label="",style="solid", color="burlywood", weight=3]; 17294[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16354 -> 17294[label="",style="solid", color="burlywood", weight=9]; 17294 -> 16373[label="",style="solid", color="burlywood", weight=3]; 16355[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16355 -> 16374[label="",style="solid", color="black", weight=3]; 16356[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16356 -> 16375[label="",style="solid", color="black", weight=3]; 16357[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17295[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17295[label="",style="solid", color="burlywood", weight=9]; 17295 -> 16376[label="",style="solid", color="burlywood", weight=3]; 17296[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16357 -> 17296[label="",style="solid", color="burlywood", weight=9]; 17296 -> 16377[label="",style="solid", color="burlywood", weight=3]; 16358[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17297[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17297[label="",style="solid", color="burlywood", weight=9]; 17297 -> 16378[label="",style="solid", color="burlywood", weight=3]; 17298[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16358 -> 17298[label="",style="solid", color="burlywood", weight=9]; 17298 -> 16379[label="",style="solid", color="burlywood", weight=3]; 16120[label="Succ wy744",fontsize=16,color="green",shape="box"];16121[label="Succ wy743",fontsize=16,color="green",shape="box"];16122[label="Succ wy744",fontsize=16,color="green",shape="box"];16123[label="Succ wy743",fontsize=16,color="green",shape="box"];16124[label="Succ wy744",fontsize=16,color="green",shape="box"];16125[label="Succ wy743",fontsize=16,color="green",shape="box"];16742[label="wy7980",fontsize=16,color="green",shape="box"];16743[label="Succ wy799",fontsize=16,color="green",shape="box"];16513[label="primPlusNat wy778 wy77700",fontsize=16,color="burlywood",shape="triangle"];17299[label="wy778/Succ wy7780",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17299[label="",style="solid", color="burlywood", weight=9]; 17299 -> 16630[label="",style="solid", color="burlywood", weight=3]; 17300[label="wy778/Zero",fontsize=10,color="white",style="solid",shape="box"];16513 -> 17300[label="",style="solid", color="burlywood", weight=9]; 17300 -> 16631[label="",style="solid", color="burlywood", weight=3]; 16744[label="primPlusInt (Neg wy833) (Pos wy7520)",fontsize=16,color="black",shape="box"];16744 -> 16768[label="",style="solid", color="black", weight=3]; 16745[label="primPlusInt (Neg wy833) (Neg wy7520)",fontsize=16,color="black",shape="box"];16745 -> 16769[label="",style="solid", color="black", weight=3]; 16258[label="primPlusInt (primMinusNat (Succ wy7780) wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17301[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17301[label="",style="solid", color="burlywood", weight=9]; 17301 -> 16291[label="",style="solid", color="burlywood", weight=3]; 17302[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16258 -> 17302[label="",style="solid", color="burlywood", weight=9]; 17302 -> 16292[label="",style="solid", color="burlywood", weight=3]; 16259[label="primPlusInt (primMinusNat Zero wy77700) wy776",fontsize=16,color="burlywood",shape="box"];17303[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17303[label="",style="solid", color="burlywood", weight=9]; 17303 -> 16293[label="",style="solid", color="burlywood", weight=3]; 17304[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16259 -> 17304[label="",style="solid", color="burlywood", weight=9]; 17304 -> 16294[label="",style="solid", color="burlywood", weight=3]; 16328 -> 16364[label="",style="dashed", color="red", weight=0]; 16328[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16328 -> 16365[label="",style="dashed", color="magenta", weight=3]; 16329[label="Nil",fontsize=16,color="green",shape="box"];16359[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (compareMyInt wy756 wy753) LT))",fontsize=16,color="black",shape="box"];16359 -> 16380[label="",style="solid", color="black", weight=3]; 16468 -> 16457[label="",style="dashed", color="red", weight=0]; 16468[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16469[label="wy753",fontsize=16,color="green",shape="box"];16470[label="primPlusInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="black",shape="box"];16470 -> 16530[label="",style="solid", color="black", weight=3]; 16522[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16522 -> 16575[label="",style="solid", color="black", weight=3]; 16523[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16523 -> 16576[label="",style="solid", color="black", weight=3]; 16524[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17305[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17305[label="",style="solid", color="burlywood", weight=9]; 17305 -> 16577[label="",style="solid", color="burlywood", weight=3]; 17306[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16524 -> 17306[label="",style="solid", color="burlywood", weight=9]; 17306 -> 16578[label="",style="solid", color="burlywood", weight=3]; 16525[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17307[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17307[label="",style="solid", color="burlywood", weight=9]; 17307 -> 16579[label="",style="solid", color="burlywood", weight=3]; 17308[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16525 -> 17308[label="",style="solid", color="burlywood", weight=9]; 17308 -> 16580[label="",style="solid", color="burlywood", weight=3]; 16526[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16526 -> 16581[label="",style="solid", color="black", weight=3]; 16527[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16527 -> 16582[label="",style="solid", color="black", weight=3]; 16528[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17309[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17309[label="",style="solid", color="burlywood", weight=9]; 17309 -> 16583[label="",style="solid", color="burlywood", weight=3]; 17310[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16528 -> 17310[label="",style="solid", color="burlywood", weight=9]; 17310 -> 16584[label="",style="solid", color="burlywood", weight=3]; 16529[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17311[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17311[label="",style="solid", color="burlywood", weight=9]; 17311 -> 16585[label="",style="solid", color="burlywood", weight=3]; 17312[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16529 -> 17312[label="",style="solid", color="burlywood", weight=9]; 17312 -> 16586[label="",style="solid", color="burlywood", weight=3]; 17068[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) wy853)",fontsize=16,color="burlywood",shape="box"];17313[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17313[label="",style="solid", color="burlywood", weight=9]; 17313 -> 17078[label="",style="solid", color="burlywood", weight=3]; 17314[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17068 -> 17314[label="",style="solid", color="burlywood", weight=9]; 17314 -> 17079[label="",style="solid", color="burlywood", weight=3]; 17069[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero wy853)",fontsize=16,color="burlywood",shape="box"];17315[label="wy853/Succ wy8530",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17315[label="",style="solid", color="burlywood", weight=9]; 17315 -> 17080[label="",style="solid", color="burlywood", weight=3]; 17316[label="wy853/Zero",fontsize=10,color="white",style="solid",shape="box"];17069 -> 17316[label="",style="solid", color="burlywood", weight=9]; 17316 -> 17081[label="",style="solid", color="burlywood", weight=3]; 7338 -> 5128[label="",style="dashed", color="red", weight=0]; 7338[label="primDivNatS (primMinusNatS (Succ wy16000) Zero) (Succ Zero)",fontsize=16,color="magenta"];7338 -> 7410[label="",style="dashed", color="magenta", weight=3]; 7338 -> 7411[label="",style="dashed", color="magenta", weight=3]; 7339 -> 5128[label="",style="dashed", color="red", weight=0]; 7339[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];7339 -> 7412[label="",style="dashed", color="magenta", weight=3]; 7339 -> 7413[label="",style="dashed", color="magenta", weight=3]; 16565[label="wy776",fontsize=16,color="green",shape="box"];16566[label="Succ wy778",fontsize=16,color="green",shape="box"];16405[label="primPlusNat (Succ wy778) (Succ wy77600)",fontsize=16,color="black",shape="box"];16405 -> 16509[label="",style="solid", color="black", weight=3]; 16406[label="primPlusNat (Succ wy778) Zero",fontsize=16,color="black",shape="box"];16406 -> 16510[label="",style="solid", color="black", weight=3]; 16640[label="Pos (primPlusNat wy824 wy7340)",fontsize=16,color="green",shape="box"];16640 -> 16647[label="",style="dashed", color="green", weight=3]; 16641[label="primMinusNat wy824 wy7340",fontsize=16,color="burlywood",shape="triangle"];17317[label="wy824/Succ wy8240",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17317[label="",style="solid", color="burlywood", weight=9]; 17317 -> 16648[label="",style="solid", color="burlywood", weight=3]; 17318[label="wy824/Zero",fontsize=10,color="white",style="solid",shape="box"];16641 -> 17318[label="",style="solid", color="burlywood", weight=9]; 17318 -> 16649[label="",style="solid", color="burlywood", weight=3]; 16266 -> 12676[label="",style="dashed", color="red", weight=0]; 16266[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16266 -> 16301[label="",style="dashed", color="magenta", weight=3]; 16266 -> 16302[label="",style="dashed", color="magenta", weight=3]; 16266 -> 16303[label="",style="dashed", color="magenta", weight=3]; 16265[label="takeWhile (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="triangle"];16265 -> 16304[label="",style="solid", color="black", weight=3]; 16288[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt wy738 wy735) LT))",fontsize=16,color="burlywood",shape="box"];17319[label="wy738/Pos wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17319[label="",style="solid", color="burlywood", weight=9]; 17319 -> 16330[label="",style="solid", color="burlywood", weight=3]; 17320[label="wy738/Neg wy7380",fontsize=10,color="white",style="solid",shape="box"];16288 -> 17320[label="",style="solid", color="burlywood", weight=9]; 17320 -> 16331[label="",style="solid", color="burlywood", weight=3]; 2088[label="properFractionQ1 wy16 wy17 (primQrmInt wy16 wy17)",fontsize=16,color="black",shape="box"];2088 -> 2189[label="",style="solid", color="black", weight=3]; 7350[label="not (esEsOrdering (primCmpNat (Succ wy2000) wy4390) GT)",fontsize=16,color="burlywood",shape="triangle"];17321[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17321[label="",style="solid", color="burlywood", weight=9]; 17321 -> 7421[label="",style="solid", color="burlywood", weight=3]; 17322[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7350 -> 17322[label="",style="solid", color="burlywood", weight=9]; 17322 -> 7422[label="",style="solid", color="burlywood", weight=3]; 7351[label="not (esEsOrdering GT GT)",fontsize=16,color="black",shape="triangle"];7351 -> 7423[label="",style="solid", color="black", weight=3]; 7352[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7352 -> 7424[label="",style="solid", color="black", weight=3]; 7353[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7353 -> 7425[label="",style="solid", color="black", weight=3]; 7354[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7354 -> 7426[label="",style="solid", color="black", weight=3]; 7355[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7355 -> 7427[label="",style="solid", color="black", weight=3]; 7356[label="not (esEsOrdering LT GT)",fontsize=16,color="black",shape="triangle"];7356 -> 7428[label="",style="solid", color="black", weight=3]; 7357[label="not (esEsOrdering (primCmpNat wy4390 (Succ wy2000)) GT)",fontsize=16,color="burlywood",shape="triangle"];17323[label="wy4390/Succ wy43900",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17323[label="",style="solid", color="burlywood", weight=9]; 17323 -> 7429[label="",style="solid", color="burlywood", weight=3]; 17324[label="wy4390/Zero",fontsize=10,color="white",style="solid",shape="box"];7357 -> 17324[label="",style="solid", color="burlywood", weight=9]; 17324 -> 7430[label="",style="solid", color="burlywood", weight=3]; 7358[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7358 -> 7431[label="",style="solid", color="black", weight=3]; 7359[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) GT)",fontsize=16,color="black",shape="box"];7359 -> 7432[label="",style="solid", color="black", weight=3]; 7360[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy43900))) GT)",fontsize=16,color="black",shape="box"];7360 -> 7433[label="",style="solid", color="black", weight=3]; 7361[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) GT)",fontsize=16,color="black",shape="box"];7361 -> 7434[label="",style="solid", color="black", weight=3]; 16360[label="primPlusInt (primMinusInt (Pos Zero) wy733) wy734",fontsize=16,color="burlywood",shape="box"];17325[label="wy733/Pos wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17325[label="",style="solid", color="burlywood", weight=9]; 17325 -> 16381[label="",style="solid", color="burlywood", weight=3]; 17326[label="wy733/Neg wy7330",fontsize=10,color="white",style="solid",shape="box"];16360 -> 17326[label="",style="solid", color="burlywood", weight=9]; 17326 -> 16382[label="",style="solid", color="burlywood", weight=3]; 16368 -> 16448[label="",style="dashed", color="red", weight=0]; 16368[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16368 -> 16449[label="",style="dashed", color="magenta", weight=3]; 16368 -> 16450[label="",style="dashed", color="magenta", weight=3]; 16369 -> 16459[label="",style="dashed", color="red", weight=0]; 16369[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16369 -> 16460[label="",style="dashed", color="magenta", weight=3]; 16369 -> 16461[label="",style="dashed", color="magenta", weight=3]; 16370[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16370 -> 16471[label="",style="solid", color="black", weight=3]; 16371[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16371 -> 16472[label="",style="solid", color="black", weight=3]; 16372[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16372 -> 16473[label="",style="solid", color="black", weight=3]; 16373[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16373 -> 16474[label="",style="solid", color="black", weight=3]; 16374 -> 16448[label="",style="dashed", color="red", weight=0]; 16374[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16374 -> 16451[label="",style="dashed", color="magenta", weight=3]; 16374 -> 16452[label="",style="dashed", color="magenta", weight=3]; 16375 -> 16459[label="",style="dashed", color="red", weight=0]; 16375[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16375 -> 16462[label="",style="dashed", color="magenta", weight=3]; 16375 -> 16463[label="",style="dashed", color="magenta", weight=3]; 16376[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16376 -> 16475[label="",style="solid", color="black", weight=3]; 16377[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16377 -> 16476[label="",style="solid", color="black", weight=3]; 16378[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16378 -> 16477[label="",style="solid", color="black", weight=3]; 16379[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16379 -> 16478[label="",style="solid", color="black", weight=3]; 16630[label="primPlusNat (Succ wy7780) wy77700",fontsize=16,color="burlywood",shape="box"];17327[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17327[label="",style="solid", color="burlywood", weight=9]; 17327 -> 16757[label="",style="solid", color="burlywood", weight=3]; 17328[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16630 -> 17328[label="",style="solid", color="burlywood", weight=9]; 17328 -> 16758[label="",style="solid", color="burlywood", weight=3]; 16631[label="primPlusNat Zero wy77700",fontsize=16,color="burlywood",shape="box"];17329[label="wy77700/Succ wy777000",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17329[label="",style="solid", color="burlywood", weight=9]; 17329 -> 16759[label="",style="solid", color="burlywood", weight=3]; 17330[label="wy77700/Zero",fontsize=10,color="white",style="solid",shape="box"];16631 -> 17330[label="",style="solid", color="burlywood", weight=9]; 17330 -> 16760[label="",style="solid", color="burlywood", weight=3]; 16768 -> 16641[label="",style="dashed", color="red", weight=0]; 16768[label="primMinusNat wy7520 wy833",fontsize=16,color="magenta"];16768 -> 16795[label="",style="dashed", color="magenta", weight=3]; 16768 -> 16796[label="",style="dashed", color="magenta", weight=3]; 16769[label="Neg (primPlusNat wy833 wy7520)",fontsize=16,color="green",shape="box"];16769 -> 16797[label="",style="dashed", color="green", weight=3]; 16291[label="primPlusInt (primMinusNat (Succ wy7780) (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16291 -> 16332[label="",style="solid", color="black", weight=3]; 16292[label="primPlusInt (primMinusNat (Succ wy7780) Zero) wy776",fontsize=16,color="black",shape="box"];16292 -> 16333[label="",style="solid", color="black", weight=3]; 16293[label="primPlusInt (primMinusNat Zero (Succ wy777000)) wy776",fontsize=16,color="black",shape="box"];16293 -> 16334[label="",style="solid", color="black", weight=3]; 16294[label="primPlusInt (primMinusNat Zero Zero) wy776",fontsize=16,color="black",shape="box"];16294 -> 16335[label="",style="solid", color="black", weight=3]; 16365 -> 14894[label="",style="dashed", color="red", weight=0]; 16365[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16365 -> 16390[label="",style="dashed", color="magenta", weight=3]; 16365 -> 16391[label="",style="dashed", color="magenta", weight=3]; 16365 -> 16392[label="",style="dashed", color="magenta", weight=3]; 16364[label="takeWhile (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="triangle"];16364 -> 16393[label="",style="solid", color="black", weight=3]; 16380[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt wy756 wy753) LT))",fontsize=16,color="burlywood",shape="box"];17331[label="wy756/Pos wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17331[label="",style="solid", color="burlywood", weight=9]; 17331 -> 16479[label="",style="solid", color="burlywood", weight=3]; 17332[label="wy756/Neg wy7560",fontsize=10,color="white",style="solid",shape="box"];16380 -> 17332[label="",style="solid", color="burlywood", weight=9]; 17332 -> 16480[label="",style="solid", color="burlywood", weight=3]; 16530[label="primPlusInt (primMinusInt (Neg Zero) wy751) wy752",fontsize=16,color="burlywood",shape="box"];17333[label="wy751/Pos wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17333[label="",style="solid", color="burlywood", weight=9]; 17333 -> 16587[label="",style="solid", color="burlywood", weight=3]; 17334[label="wy751/Neg wy7510",fontsize=10,color="white",style="solid",shape="box"];16530 -> 17334[label="",style="solid", color="burlywood", weight=9]; 17334 -> 16588[label="",style="solid", color="burlywood", weight=3]; 16575 -> 16642[label="",style="dashed", color="red", weight=0]; 16575[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16575 -> 16643[label="",style="dashed", color="magenta", weight=3]; 16575 -> 16644[label="",style="dashed", color="magenta", weight=3]; 16576 -> 16650[label="",style="dashed", color="red", weight=0]; 16576[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16576 -> 16651[label="",style="dashed", color="magenta", weight=3]; 16576 -> 16652[label="",style="dashed", color="magenta", weight=3]; 16577[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16577 -> 16655[label="",style="solid", color="black", weight=3]; 16578[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16578 -> 16656[label="",style="solid", color="black", weight=3]; 16579[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16579 -> 16657[label="",style="solid", color="black", weight=3]; 16580[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16580 -> 16658[label="",style="solid", color="black", weight=3]; 16581 -> 16642[label="",style="dashed", color="red", weight=0]; 16581[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16581 -> 16645[label="",style="dashed", color="magenta", weight=3]; 16581 -> 16646[label="",style="dashed", color="magenta", weight=3]; 16582 -> 16650[label="",style="dashed", color="red", weight=0]; 16582[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16582 -> 16653[label="",style="dashed", color="magenta", weight=3]; 16582 -> 16654[label="",style="dashed", color="magenta", weight=3]; 16583[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16583 -> 16659[label="",style="solid", color="black", weight=3]; 16584[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16584 -> 16660[label="",style="solid", color="black", weight=3]; 16585[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16585 -> 16661[label="",style="solid", color="black", weight=3]; 16586[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16586 -> 16662[label="",style="solid", color="black", weight=3]; 17078[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) (Succ wy8530))",fontsize=16,color="black",shape="box"];17078 -> 17094[label="",style="solid", color="black", weight=3]; 17079[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS (Succ wy8520) Zero)",fontsize=16,color="black",shape="box"];17079 -> 17095[label="",style="solid", color="black", weight=3]; 17080[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero (Succ wy8530))",fontsize=16,color="black",shape="box"];17080 -> 17096[label="",style="solid", color="black", weight=3]; 17081[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];17081 -> 17097[label="",style="solid", color="black", weight=3]; 7410 -> 6811[label="",style="dashed", color="red", weight=0]; 7410[label="primMinusNatS (Succ wy16000) Zero",fontsize=16,color="magenta"];7410 -> 7712[label="",style="dashed", color="magenta", weight=3]; 7411[label="Zero",fontsize=16,color="green",shape="box"];7412 -> 6851[label="",style="dashed", color="red", weight=0]; 7412[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];7413[label="Zero",fontsize=16,color="green",shape="box"];16509[label="Succ (Succ (primPlusNat wy778 wy77600))",fontsize=16,color="green",shape="box"];16509 -> 16632[label="",style="dashed", color="green", weight=3]; 16510[label="Succ wy778",fontsize=16,color="green",shape="box"];16647 -> 16513[label="",style="dashed", color="red", weight=0]; 16647[label="primPlusNat wy824 wy7340",fontsize=16,color="magenta"];16647 -> 16663[label="",style="dashed", color="magenta", weight=3]; 16647 -> 16664[label="",style="dashed", color="magenta", weight=3]; 16648[label="primMinusNat (Succ wy8240) wy7340",fontsize=16,color="burlywood",shape="box"];17335[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17335[label="",style="solid", color="burlywood", weight=9]; 17335 -> 16665[label="",style="solid", color="burlywood", weight=3]; 17336[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16648 -> 17336[label="",style="solid", color="burlywood", weight=9]; 17336 -> 16666[label="",style="solid", color="burlywood", weight=3]; 16649[label="primMinusNat Zero wy7340",fontsize=16,color="burlywood",shape="box"];17337[label="wy7340/Succ wy73400",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17337[label="",style="solid", color="burlywood", weight=9]; 17337 -> 16667[label="",style="solid", color="burlywood", weight=3]; 17338[label="wy7340/Zero",fontsize=10,color="white",style="solid",shape="box"];16649 -> 17338[label="",style="solid", color="burlywood", weight=9]; 17338 -> 16668[label="",style="solid", color="burlywood", weight=3]; 16301[label="wy758",fontsize=16,color="green",shape="box"];16302[label="wy732",fontsize=16,color="green",shape="box"];16303[label="wy762",fontsize=16,color="green",shape="box"];16304[label="takeWhile2 (flip ltEsMyInt wy735) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813))",fontsize=16,color="black",shape="box"];16304 -> 16342[label="",style="solid", color="black", weight=3]; 16330[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17339[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17339[label="",style="solid", color="burlywood", weight=9]; 17339 -> 16394[label="",style="solid", color="burlywood", weight=3]; 17340[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16330 -> 17340[label="",style="solid", color="burlywood", weight=9]; 17340 -> 16395[label="",style="solid", color="burlywood", weight=3]; 16331[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg wy7380) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17341[label="wy7380/Succ wy73800",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17341[label="",style="solid", color="burlywood", weight=9]; 17341 -> 16396[label="",style="solid", color="burlywood", weight=3]; 17342[label="wy7380/Zero",fontsize=10,color="white",style="solid",shape="box"];16331 -> 17342[label="",style="solid", color="burlywood", weight=9]; 17342 -> 16397[label="",style="solid", color="burlywood", weight=3]; 2189[label="properFractionQ1 wy16 wy17 (Tup2 (primQuotInt wy16 wy17) (primRemInt wy16 wy17))",fontsize=16,color="black",shape="box"];2189 -> 2519[label="",style="solid", color="black", weight=3]; 7421[label="not (esEsOrdering (primCmpNat (Succ wy2000) (Succ wy43900)) GT)",fontsize=16,color="black",shape="box"];7421 -> 10560[label="",style="solid", color="black", weight=3]; 7422[label="not (esEsOrdering (primCmpNat (Succ wy2000) Zero) GT)",fontsize=16,color="black",shape="box"];7422 -> 10561[label="",style="solid", color="black", weight=3]; 7424 -> 7357[label="",style="dashed", color="red", weight=0]; 7424[label="not (esEsOrdering (primCmpNat Zero (Succ wy43900)) GT)",fontsize=16,color="magenta"];7424 -> 10563[label="",style="dashed", color="magenta", weight=3]; 7424 -> 10564[label="",style="dashed", color="magenta", weight=3]; 7425[label="not (esEsOrdering EQ GT)",fontsize=16,color="black",shape="triangle"];7425 -> 10565[label="",style="solid", color="black", weight=3]; 7426 -> 7351[label="",style="dashed", color="red", weight=0]; 7426[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];7427 -> 7425[label="",style="dashed", color="red", weight=0]; 7427[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7429[label="not (esEsOrdering (primCmpNat (Succ wy43900) (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7429 -> 10567[label="",style="solid", color="black", weight=3]; 7430[label="not (esEsOrdering (primCmpNat Zero (Succ wy2000)) GT)",fontsize=16,color="black",shape="box"];7430 -> 10568[label="",style="solid", color="black", weight=3]; 7431 -> 7356[label="",style="dashed", color="red", weight=0]; 7431[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];7432 -> 7425[label="",style="dashed", color="red", weight=0]; 7432[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];7433 -> 7350[label="",style="dashed", color="red", weight=0]; 7433[label="not (esEsOrdering (primCmpNat (Succ wy43900) Zero) GT)",fontsize=16,color="magenta"];7433 -> 10569[label="",style="dashed", color="magenta", weight=3]; 7433 -> 10570[label="",style="dashed", color="magenta", weight=3]; 7434 -> 7425[label="",style="dashed", color="red", weight=0]; 7434[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16381[label="primPlusInt (primMinusInt (Pos Zero) (Pos wy7330)) wy734",fontsize=16,color="black",shape="box"];16381 -> 16481[label="",style="solid", color="black", weight=3]; 16382[label="primPlusInt (primMinusInt (Pos Zero) (Neg wy7330)) wy734",fontsize=16,color="black",shape="box"];16382 -> 16482[label="",style="solid", color="black", weight=3]; 16449 -> 14963[label="",style="dashed", color="red", weight=0]; 16449[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16449 -> 16483[label="",style="dashed", color="magenta", weight=3]; 16449 -> 16484[label="",style="dashed", color="magenta", weight=3]; 16450 -> 16277[label="",style="dashed", color="red", weight=0]; 16450[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16448[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) wy820",fontsize=16,color="burlywood",shape="triangle"];17343[label="wy820/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17343[label="",style="solid", color="burlywood", weight=9]; 17343 -> 16485[label="",style="solid", color="burlywood", weight=3]; 17344[label="wy820/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16448 -> 17344[label="",style="solid", color="burlywood", weight=9]; 17344 -> 16486[label="",style="solid", color="burlywood", weight=3]; 16460 -> 13404[label="",style="dashed", color="red", weight=0]; 16460[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16461 -> 16277[label="",style="dashed", color="red", weight=0]; 16461[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16459[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) wy822",fontsize=16,color="burlywood",shape="triangle"];17345[label="wy822/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17345[label="",style="solid", color="burlywood", weight=9]; 17345 -> 16487[label="",style="solid", color="burlywood", weight=3]; 17346[label="wy822/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16459 -> 17346[label="",style="solid", color="burlywood", weight=9]; 17346 -> 16488[label="",style="solid", color="burlywood", weight=3]; 16471 -> 16448[label="",style="dashed", color="red", weight=0]; 16471[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16471 -> 16531[label="",style="dashed", color="magenta", weight=3]; 16471 -> 16532[label="",style="dashed", color="magenta", weight=3]; 16471 -> 16533[label="",style="dashed", color="magenta", weight=3]; 16472 -> 16448[label="",style="dashed", color="red", weight=0]; 16472[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16472 -> 16534[label="",style="dashed", color="magenta", weight=3]; 16472 -> 16535[label="",style="dashed", color="magenta", weight=3]; 16472 -> 16536[label="",style="dashed", color="magenta", weight=3]; 16473 -> 16459[label="",style="dashed", color="red", weight=0]; 16473[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16473 -> 16537[label="",style="dashed", color="magenta", weight=3]; 16473 -> 16538[label="",style="dashed", color="magenta", weight=3]; 16473 -> 16539[label="",style="dashed", color="magenta", weight=3]; 16474 -> 16459[label="",style="dashed", color="red", weight=0]; 16474[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16474 -> 16540[label="",style="dashed", color="magenta", weight=3]; 16474 -> 16541[label="",style="dashed", color="magenta", weight=3]; 16474 -> 16542[label="",style="dashed", color="magenta", weight=3]; 16451 -> 14929[label="",style="dashed", color="red", weight=0]; 16451[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16452 -> 16277[label="",style="dashed", color="red", weight=0]; 16452[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16462 -> 14963[label="",style="dashed", color="red", weight=0]; 16462[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16462 -> 16489[label="",style="dashed", color="magenta", weight=3]; 16462 -> 16490[label="",style="dashed", color="magenta", weight=3]; 16463 -> 16277[label="",style="dashed", color="red", weight=0]; 16463[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16475 -> 16448[label="",style="dashed", color="red", weight=0]; 16475[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16475 -> 16543[label="",style="dashed", color="magenta", weight=3]; 16475 -> 16544[label="",style="dashed", color="magenta", weight=3]; 16475 -> 16545[label="",style="dashed", color="magenta", weight=3]; 16476 -> 16448[label="",style="dashed", color="red", weight=0]; 16476[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16476 -> 16546[label="",style="dashed", color="magenta", weight=3]; 16476 -> 16547[label="",style="dashed", color="magenta", weight=3]; 16476 -> 16548[label="",style="dashed", color="magenta", weight=3]; 16477 -> 16459[label="",style="dashed", color="red", weight=0]; 16477[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16477 -> 16549[label="",style="dashed", color="magenta", weight=3]; 16477 -> 16550[label="",style="dashed", color="magenta", weight=3]; 16477 -> 16551[label="",style="dashed", color="magenta", weight=3]; 16478 -> 16459[label="",style="dashed", color="red", weight=0]; 16478[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy733) wy734)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16478 -> 16552[label="",style="dashed", color="magenta", weight=3]; 16478 -> 16553[label="",style="dashed", color="magenta", weight=3]; 16478 -> 16554[label="",style="dashed", color="magenta", weight=3]; 16757[label="primPlusNat (Succ wy7780) (Succ wy777000)",fontsize=16,color="black",shape="box"];16757 -> 16770[label="",style="solid", color="black", weight=3]; 16758[label="primPlusNat (Succ wy7780) Zero",fontsize=16,color="black",shape="box"];16758 -> 16771[label="",style="solid", color="black", weight=3]; 16759[label="primPlusNat Zero (Succ wy777000)",fontsize=16,color="black",shape="box"];16759 -> 16772[label="",style="solid", color="black", weight=3]; 16760[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16760 -> 16773[label="",style="solid", color="black", weight=3]; 16795[label="wy833",fontsize=16,color="green",shape="box"];16796[label="wy7520",fontsize=16,color="green",shape="box"];16797 -> 16513[label="",style="dashed", color="red", weight=0]; 16797[label="primPlusNat wy833 wy7520",fontsize=16,color="magenta"];16797 -> 16802[label="",style="dashed", color="magenta", weight=3]; 16797 -> 16803[label="",style="dashed", color="magenta", weight=3]; 16332 -> 16215[label="",style="dashed", color="red", weight=0]; 16332[label="primPlusInt (primMinusNat wy7780 wy777000) wy776",fontsize=16,color="magenta"];16332 -> 16398[label="",style="dashed", color="magenta", weight=3]; 16332 -> 16399[label="",style="dashed", color="magenta", weight=3]; 16333 -> 16562[label="",style="dashed", color="red", weight=0]; 16333[label="primPlusInt (Pos (Succ wy7780)) wy776",fontsize=16,color="magenta"];16333 -> 16567[label="",style="dashed", color="magenta", weight=3]; 16333 -> 16568[label="",style="dashed", color="magenta", weight=3]; 16334 -> 16736[label="",style="dashed", color="red", weight=0]; 16334[label="primPlusInt (Neg (Succ wy777000)) wy776",fontsize=16,color="magenta"];16334 -> 16739[label="",style="dashed", color="magenta", weight=3]; 16334 -> 16740[label="",style="dashed", color="magenta", weight=3]; 16335 -> 16562[label="",style="dashed", color="red", weight=0]; 16335[label="primPlusInt (Pos Zero) wy776",fontsize=16,color="magenta"];16335 -> 16569[label="",style="dashed", color="magenta", weight=3]; 16335 -> 16570[label="",style="dashed", color="magenta", weight=3]; 16390[label="wy784",fontsize=16,color="green",shape="box"];16391[label="wy780",fontsize=16,color="green",shape="box"];16392[label="wy750",fontsize=16,color="green",shape="box"];16393[label="takeWhile2 (flip ltEsMyInt wy753) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816))",fontsize=16,color="black",shape="box"];16393 -> 16495[label="",style="solid", color="black", weight=3]; 16479[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17347[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17347[label="",style="solid", color="burlywood", weight=9]; 17347 -> 16555[label="",style="solid", color="burlywood", weight=3]; 17348[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16479 -> 17348[label="",style="solid", color="burlywood", weight=9]; 17348 -> 16556[label="",style="solid", color="burlywood", weight=3]; 16480[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg wy7560) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17349[label="wy7560/Succ wy75600",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17349[label="",style="solid", color="burlywood", weight=9]; 17349 -> 16557[label="",style="solid", color="burlywood", weight=3]; 17350[label="wy7560/Zero",fontsize=10,color="white",style="solid",shape="box"];16480 -> 17350[label="",style="solid", color="burlywood", weight=9]; 17350 -> 16558[label="",style="solid", color="burlywood", weight=3]; 16587[label="primPlusInt (primMinusInt (Neg Zero) (Pos wy7510)) wy752",fontsize=16,color="black",shape="box"];16587 -> 16669[label="",style="solid", color="black", weight=3]; 16588[label="primPlusInt (primMinusInt (Neg Zero) (Neg wy7510)) wy752",fontsize=16,color="black",shape="box"];16588 -> 16670[label="",style="solid", color="black", weight=3]; 16643 -> 14963[label="",style="dashed", color="red", weight=0]; 16643[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16643 -> 16671[label="",style="dashed", color="magenta", weight=3]; 16643 -> 16672[label="",style="dashed", color="magenta", weight=3]; 16644 -> 16457[label="",style="dashed", color="red", weight=0]; 16644[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16642[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) wy828",fontsize=16,color="burlywood",shape="triangle"];17351[label="wy828/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17351[label="",style="solid", color="burlywood", weight=9]; 17351 -> 16673[label="",style="solid", color="burlywood", weight=3]; 17352[label="wy828/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16642 -> 17352[label="",style="solid", color="burlywood", weight=9]; 17352 -> 16674[label="",style="solid", color="burlywood", weight=3]; 16651 -> 13404[label="",style="dashed", color="red", weight=0]; 16651[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16652 -> 16457[label="",style="dashed", color="red", weight=0]; 16652[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16650[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) wy830",fontsize=16,color="burlywood",shape="triangle"];17353[label="wy830/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17353[label="",style="solid", color="burlywood", weight=9]; 17353 -> 16675[label="",style="solid", color="burlywood", weight=3]; 17354[label="wy830/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16650 -> 17354[label="",style="solid", color="burlywood", weight=9]; 17354 -> 16676[label="",style="solid", color="burlywood", weight=3]; 16655 -> 16642[label="",style="dashed", color="red", weight=0]; 16655[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16655 -> 16708[label="",style="dashed", color="magenta", weight=3]; 16655 -> 16709[label="",style="dashed", color="magenta", weight=3]; 16655 -> 16710[label="",style="dashed", color="magenta", weight=3]; 16656 -> 16642[label="",style="dashed", color="red", weight=0]; 16656[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16656 -> 16711[label="",style="dashed", color="magenta", weight=3]; 16656 -> 16712[label="",style="dashed", color="magenta", weight=3]; 16656 -> 16713[label="",style="dashed", color="magenta", weight=3]; 16657 -> 16650[label="",style="dashed", color="red", weight=0]; 16657[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16657 -> 16714[label="",style="dashed", color="magenta", weight=3]; 16657 -> 16715[label="",style="dashed", color="magenta", weight=3]; 16657 -> 16716[label="",style="dashed", color="magenta", weight=3]; 16658 -> 16650[label="",style="dashed", color="red", weight=0]; 16658[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16658 -> 16717[label="",style="dashed", color="magenta", weight=3]; 16658 -> 16718[label="",style="dashed", color="magenta", weight=3]; 16658 -> 16719[label="",style="dashed", color="magenta", weight=3]; 16645 -> 14929[label="",style="dashed", color="red", weight=0]; 16645[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16646 -> 16457[label="",style="dashed", color="red", weight=0]; 16646[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16653 -> 14963[label="",style="dashed", color="red", weight=0]; 16653[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16653 -> 16677[label="",style="dashed", color="magenta", weight=3]; 16653 -> 16678[label="",style="dashed", color="magenta", weight=3]; 16654 -> 16457[label="",style="dashed", color="red", weight=0]; 16654[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16659 -> 16642[label="",style="dashed", color="red", weight=0]; 16659[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16659 -> 16720[label="",style="dashed", color="magenta", weight=3]; 16659 -> 16721[label="",style="dashed", color="magenta", weight=3]; 16659 -> 16722[label="",style="dashed", color="magenta", weight=3]; 16660 -> 16642[label="",style="dashed", color="red", weight=0]; 16660[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16660 -> 16723[label="",style="dashed", color="magenta", weight=3]; 16660 -> 16724[label="",style="dashed", color="magenta", weight=3]; 16660 -> 16725[label="",style="dashed", color="magenta", weight=3]; 16661 -> 16650[label="",style="dashed", color="red", weight=0]; 16661[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16661 -> 16726[label="",style="dashed", color="magenta", weight=3]; 16661 -> 16727[label="",style="dashed", color="magenta", weight=3]; 16661 -> 16728[label="",style="dashed", color="magenta", weight=3]; 16662 -> 16650[label="",style="dashed", color="red", weight=0]; 16662[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy751) wy752)) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16662 -> 16729[label="",style="dashed", color="magenta", weight=3]; 16662 -> 16730[label="",style="dashed", color="magenta", weight=3]; 16662 -> 16731[label="",style="dashed", color="magenta", weight=3]; 17094 -> 17027[label="",style="dashed", color="red", weight=0]; 17094[label="primDivNatS0 (Succ wy850) (Succ wy851) (primGEqNatS wy8520 wy8530)",fontsize=16,color="magenta"];17094 -> 17110[label="",style="dashed", color="magenta", weight=3]; 17094 -> 17111[label="",style="dashed", color="magenta", weight=3]; 17095[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="black",shape="triangle"];17095 -> 17112[label="",style="solid", color="black", weight=3]; 17096[label="primDivNatS0 (Succ wy850) (Succ wy851) MyFalse",fontsize=16,color="black",shape="box"];17096 -> 17113[label="",style="solid", color="black", weight=3]; 17097 -> 17095[label="",style="dashed", color="red", weight=0]; 17097[label="primDivNatS0 (Succ wy850) (Succ wy851) MyTrue",fontsize=16,color="magenta"];7712[label="wy16000",fontsize=16,color="green",shape="box"];6811[label="primMinusNatS (Succ wy40000) Zero",fontsize=16,color="black",shape="triangle"];6811 -> 7063[label="",style="solid", color="black", weight=3]; 6851[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];6851 -> 7092[label="",style="solid", color="black", weight=3]; 16632 -> 16513[label="",style="dashed", color="red", weight=0]; 16632[label="primPlusNat wy778 wy77600",fontsize=16,color="magenta"];16632 -> 16679[label="",style="dashed", color="magenta", weight=3]; 16663[label="wy7340",fontsize=16,color="green",shape="box"];16664[label="wy824",fontsize=16,color="green",shape="box"];16665[label="primMinusNat (Succ wy8240) (Succ wy73400)",fontsize=16,color="black",shape="box"];16665 -> 16732[label="",style="solid", color="black", weight=3]; 16666[label="primMinusNat (Succ wy8240) Zero",fontsize=16,color="black",shape="box"];16666 -> 16733[label="",style="solid", color="black", weight=3]; 16667[label="primMinusNat Zero (Succ wy73400)",fontsize=16,color="black",shape="box"];16667 -> 16734[label="",style="solid", color="black", weight=3]; 16668[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];16668 -> 16735[label="",style="solid", color="black", weight=3]; 16342 -> 13641[label="",style="dashed", color="red", weight=0]; 16342[label="takeWhile1 (flip ltEsMyInt wy735) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy813) (flip ltEsMyInt wy735 wy758)",fontsize=16,color="magenta"];16342 -> 16411[label="",style="dashed", color="magenta", weight=3]; 16342 -> 16412[label="",style="dashed", color="magenta", weight=3]; 16342 -> 16413[label="",style="dashed", color="magenta", weight=3]; 16394[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17355[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17355[label="",style="solid", color="burlywood", weight=9]; 17355 -> 16497[label="",style="solid", color="burlywood", weight=3]; 17356[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16394 -> 17356[label="",style="solid", color="burlywood", weight=9]; 17356 -> 16498[label="",style="solid", color="burlywood", weight=3]; 16395[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17357[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17357[label="",style="solid", color="burlywood", weight=9]; 17357 -> 16499[label="",style="solid", color="burlywood", weight=3]; 17358[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16395 -> 17358[label="",style="solid", color="burlywood", weight=9]; 17358 -> 16500[label="",style="solid", color="burlywood", weight=3]; 16396[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17359[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17359[label="",style="solid", color="burlywood", weight=9]; 17359 -> 16501[label="",style="solid", color="burlywood", weight=3]; 17360[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16396 -> 17360[label="",style="solid", color="burlywood", weight=9]; 17360 -> 16502[label="",style="solid", color="burlywood", weight=3]; 16397[label="takeWhile1 (flip gtEsMyInt wy735) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) wy735) LT))",fontsize=16,color="burlywood",shape="box"];17361[label="wy735/Pos wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17361[label="",style="solid", color="burlywood", weight=9]; 17361 -> 16503[label="",style="solid", color="burlywood", weight=3]; 17362[label="wy735/Neg wy7350",fontsize=10,color="white",style="solid",shape="box"];16397 -> 17362[label="",style="solid", color="burlywood", weight=9]; 17362 -> 16504[label="",style="solid", color="burlywood", weight=3]; 2519[label="primQuotInt wy16 wy17",fontsize=16,color="burlywood",shape="box"];17363[label="wy16/Pos wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17363[label="",style="solid", color="burlywood", weight=9]; 17363 -> 3636[label="",style="solid", color="burlywood", weight=3]; 17364[label="wy16/Neg wy160",fontsize=10,color="white",style="solid",shape="box"];2519 -> 17364[label="",style="solid", color="burlywood", weight=9]; 17364 -> 3637[label="",style="solid", color="burlywood", weight=3]; 10560[label="not (esEsOrdering (primCmpNat wy2000 wy43900) GT)",fontsize=16,color="burlywood",shape="triangle"];17365[label="wy2000/Succ wy20000",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17365[label="",style="solid", color="burlywood", weight=9]; 17365 -> 13627[label="",style="solid", color="burlywood", weight=3]; 17366[label="wy2000/Zero",fontsize=10,color="white",style="solid",shape="box"];10560 -> 17366[label="",style="solid", color="burlywood", weight=9]; 17366 -> 13628[label="",style="solid", color="burlywood", weight=3]; 10561 -> 7351[label="",style="dashed", color="red", weight=0]; 10561[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];10563[label="wy43900",fontsize=16,color="green",shape="box"];10564[label="Zero",fontsize=16,color="green",shape="box"];10565 -> 7428[label="",style="dashed", color="red", weight=0]; 10565[label="not MyFalse",fontsize=16,color="magenta"];10567 -> 10560[label="",style="dashed", color="red", weight=0]; 10567[label="not (esEsOrdering (primCmpNat wy43900 wy2000) GT)",fontsize=16,color="magenta"];10567 -> 13629[label="",style="dashed", color="magenta", weight=3]; 10567 -> 13630[label="",style="dashed", color="magenta", weight=3]; 10568 -> 7356[label="",style="dashed", color="red", weight=0]; 10568[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];10569[label="Zero",fontsize=16,color="green",shape="box"];10570[label="wy43900",fontsize=16,color="green",shape="box"];16481 -> 16215[label="",style="dashed", color="red", weight=0]; 16481[label="primPlusInt (primMinusNat Zero wy7330) wy734",fontsize=16,color="magenta"];16481 -> 16559[label="",style="dashed", color="magenta", weight=3]; 16481 -> 16560[label="",style="dashed", color="magenta", weight=3]; 16481 -> 16561[label="",style="dashed", color="magenta", weight=3]; 16482 -> 16562[label="",style="dashed", color="red", weight=0]; 16482[label="primPlusInt (Pos (primPlusNat Zero wy7330)) wy734",fontsize=16,color="magenta"];16482 -> 16571[label="",style="dashed", color="magenta", weight=3]; 16483[label="wy7350",fontsize=16,color="green",shape="box"];16484[label="Succ wy73800",fontsize=16,color="green",shape="box"];16485[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16485 -> 16589[label="",style="solid", color="black", weight=3]; 16486[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyFalse",fontsize=16,color="black",shape="box"];16486 -> 16590[label="",style="solid", color="black", weight=3]; 16487[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16487 -> 16591[label="",style="solid", color="black", weight=3]; 16488[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyFalse",fontsize=16,color="black",shape="box"];16488 -> 16592[label="",style="solid", color="black", weight=3]; 16531[label="Succ wy73500",fontsize=16,color="green",shape="box"];16532 -> 14963[label="",style="dashed", color="red", weight=0]; 16532[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16532 -> 16593[label="",style="dashed", color="magenta", weight=3]; 16532 -> 16594[label="",style="dashed", color="magenta", weight=3]; 16533 -> 16277[label="",style="dashed", color="red", weight=0]; 16533[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16534[label="Zero",fontsize=16,color="green",shape="box"];16535 -> 14908[label="",style="dashed", color="red", weight=0]; 16535[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16536 -> 16277[label="",style="dashed", color="red", weight=0]; 16536[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16537[label="Succ wy73500",fontsize=16,color="green",shape="box"];16538 -> 13404[label="",style="dashed", color="red", weight=0]; 16538[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16539 -> 16277[label="",style="dashed", color="red", weight=0]; 16539[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16540[label="Zero",fontsize=16,color="green",shape="box"];16541 -> 14908[label="",style="dashed", color="red", weight=0]; 16541[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16542 -> 16277[label="",style="dashed", color="red", weight=0]; 16542[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16489[label="Succ wy73800",fontsize=16,color="green",shape="box"];16490[label="wy7350",fontsize=16,color="green",shape="box"];16543[label="Succ wy73500",fontsize=16,color="green",shape="box"];16544 -> 14929[label="",style="dashed", color="red", weight=0]; 16544[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16545 -> 16277[label="",style="dashed", color="red", weight=0]; 16545[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16546[label="Zero",fontsize=16,color="green",shape="box"];16547 -> 14908[label="",style="dashed", color="red", weight=0]; 16547[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16548 -> 16277[label="",style="dashed", color="red", weight=0]; 16548[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16549[label="Succ wy73500",fontsize=16,color="green",shape="box"];16550 -> 14963[label="",style="dashed", color="red", weight=0]; 16550[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16550 -> 16595[label="",style="dashed", color="magenta", weight=3]; 16550 -> 16596[label="",style="dashed", color="magenta", weight=3]; 16551 -> 16277[label="",style="dashed", color="red", weight=0]; 16551[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16552[label="Zero",fontsize=16,color="green",shape="box"];16553 -> 14908[label="",style="dashed", color="red", weight=0]; 16553[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16554 -> 16277[label="",style="dashed", color="red", weight=0]; 16554[label="psMyInt (msMyInt (Pos Zero) wy733) wy734",fontsize=16,color="magenta"];16770[label="Succ (Succ (primPlusNat wy7780 wy777000))",fontsize=16,color="green",shape="box"];16770 -> 16798[label="",style="dashed", color="green", weight=3]; 16771[label="Succ wy7780",fontsize=16,color="green",shape="box"];16772[label="Succ wy777000",fontsize=16,color="green",shape="box"];16773[label="Zero",fontsize=16,color="green",shape="box"];16802[label="wy7520",fontsize=16,color="green",shape="box"];16803[label="wy833",fontsize=16,color="green",shape="box"];16398[label="wy777000",fontsize=16,color="green",shape="box"];16399[label="wy7780",fontsize=16,color="green",shape="box"];16567[label="wy776",fontsize=16,color="green",shape="box"];16568[label="Succ wy7780",fontsize=16,color="green",shape="box"];16739[label="Succ wy777000",fontsize=16,color="green",shape="box"];16740[label="wy776",fontsize=16,color="green",shape="box"];16569[label="wy776",fontsize=16,color="green",shape="box"];16570[label="Zero",fontsize=16,color="green",shape="box"];16495 -> 16188[label="",style="dashed", color="red", weight=0]; 16495[label="takeWhile1 (flip ltEsMyInt wy753) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy816) (flip ltEsMyInt wy753 wy780)",fontsize=16,color="magenta"];16495 -> 16601[label="",style="dashed", color="magenta", weight=3]; 16495 -> 16602[label="",style="dashed", color="magenta", weight=3]; 16495 -> 16603[label="",style="dashed", color="magenta", weight=3]; 16555[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17367[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17367[label="",style="solid", color="burlywood", weight=9]; 17367 -> 16604[label="",style="solid", color="burlywood", weight=3]; 17368[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16555 -> 17368[label="",style="solid", color="burlywood", weight=9]; 17368 -> 16605[label="",style="solid", color="burlywood", weight=3]; 16556[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17369[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17369[label="",style="solid", color="burlywood", weight=9]; 17369 -> 16606[label="",style="solid", color="burlywood", weight=3]; 17370[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16556 -> 17370[label="",style="solid", color="burlywood", weight=9]; 17370 -> 16607[label="",style="solid", color="burlywood", weight=3]; 16557[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17371[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17371[label="",style="solid", color="burlywood", weight=9]; 17371 -> 16608[label="",style="solid", color="burlywood", weight=3]; 17372[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16557 -> 17372[label="",style="solid", color="burlywood", weight=9]; 17372 -> 16609[label="",style="solid", color="burlywood", weight=3]; 16558[label="takeWhile1 (flip gtEsMyInt wy753) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) wy753) LT))",fontsize=16,color="burlywood",shape="box"];17373[label="wy753/Pos wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17373[label="",style="solid", color="burlywood", weight=9]; 17373 -> 16610[label="",style="solid", color="burlywood", weight=3]; 17374[label="wy753/Neg wy7530",fontsize=10,color="white",style="solid",shape="box"];16558 -> 17374[label="",style="solid", color="burlywood", weight=9]; 17374 -> 16611[label="",style="solid", color="burlywood", weight=3]; 16669 -> 16736[label="",style="dashed", color="red", weight=0]; 16669[label="primPlusInt (Neg (primPlusNat Zero wy7510)) wy752",fontsize=16,color="magenta"];16669 -> 16741[label="",style="dashed", color="magenta", weight=3]; 16670 -> 16215[label="",style="dashed", color="red", weight=0]; 16670[label="primPlusInt (primMinusNat wy7510 Zero) wy752",fontsize=16,color="magenta"];16670 -> 16746[label="",style="dashed", color="magenta", weight=3]; 16670 -> 16747[label="",style="dashed", color="magenta", weight=3]; 16670 -> 16748[label="",style="dashed", color="magenta", weight=3]; 16671[label="wy7530",fontsize=16,color="green",shape="box"];16672[label="Succ wy75600",fontsize=16,color="green",shape="box"];16673[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16673 -> 16749[label="",style="solid", color="black", weight=3]; 16674[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyFalse",fontsize=16,color="black",shape="box"];16674 -> 16750[label="",style="solid", color="black", weight=3]; 16675[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16675 -> 16751[label="",style="solid", color="black", weight=3]; 16676[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyFalse",fontsize=16,color="black",shape="box"];16676 -> 16752[label="",style="solid", color="black", weight=3]; 16708 -> 14963[label="",style="dashed", color="red", weight=0]; 16708[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16708 -> 16753[label="",style="dashed", color="magenta", weight=3]; 16708 -> 16754[label="",style="dashed", color="magenta", weight=3]; 16709[label="Succ wy75300",fontsize=16,color="green",shape="box"];16710 -> 16457[label="",style="dashed", color="red", weight=0]; 16710[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16711 -> 14908[label="",style="dashed", color="red", weight=0]; 16711[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16712[label="Zero",fontsize=16,color="green",shape="box"];16713 -> 16457[label="",style="dashed", color="red", weight=0]; 16713[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16714 -> 13404[label="",style="dashed", color="red", weight=0]; 16714[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16715 -> 16457[label="",style="dashed", color="red", weight=0]; 16715[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16716[label="Succ wy75300",fontsize=16,color="green",shape="box"];16717 -> 14908[label="",style="dashed", color="red", weight=0]; 16717[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16718 -> 16457[label="",style="dashed", color="red", weight=0]; 16718[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16719[label="Zero",fontsize=16,color="green",shape="box"];16677[label="Succ wy75600",fontsize=16,color="green",shape="box"];16678[label="wy7530",fontsize=16,color="green",shape="box"];16720 -> 14929[label="",style="dashed", color="red", weight=0]; 16720[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16721[label="Succ wy75300",fontsize=16,color="green",shape="box"];16722 -> 16457[label="",style="dashed", color="red", weight=0]; 16722[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16723 -> 14908[label="",style="dashed", color="red", weight=0]; 16723[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16724[label="Zero",fontsize=16,color="green",shape="box"];16725 -> 16457[label="",style="dashed", color="red", weight=0]; 16725[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16726 -> 14963[label="",style="dashed", color="red", weight=0]; 16726[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16726 -> 16755[label="",style="dashed", color="magenta", weight=3]; 16726 -> 16756[label="",style="dashed", color="magenta", weight=3]; 16727 -> 16457[label="",style="dashed", color="red", weight=0]; 16727[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16728[label="Succ wy75300",fontsize=16,color="green",shape="box"];16729 -> 14908[label="",style="dashed", color="red", weight=0]; 16729[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16730 -> 16457[label="",style="dashed", color="red", weight=0]; 16730[label="psMyInt (msMyInt (Neg Zero) wy751) wy752",fontsize=16,color="magenta"];16731[label="Zero",fontsize=16,color="green",shape="box"];17110[label="wy8520",fontsize=16,color="green",shape="box"];17111[label="wy8530",fontsize=16,color="green",shape="box"];17112[label="Succ (primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851)))",fontsize=16,color="green",shape="box"];17112 -> 17118[label="",style="dashed", color="green", weight=3]; 17113[label="Zero",fontsize=16,color="green",shape="box"];7063[label="Succ wy40000",fontsize=16,color="green",shape="box"];7092[label="Zero",fontsize=16,color="green",shape="box"];16679[label="wy77600",fontsize=16,color="green",shape="box"];16732 -> 16641[label="",style="dashed", color="red", weight=0]; 16732[label="primMinusNat wy8240 wy73400",fontsize=16,color="magenta"];16732 -> 16761[label="",style="dashed", color="magenta", weight=3]; 16732 -> 16762[label="",style="dashed", color="magenta", weight=3]; 16733[label="Pos (Succ wy8240)",fontsize=16,color="green",shape="box"];16734[label="Neg (Succ wy73400)",fontsize=16,color="green",shape="box"];16735[label="Pos Zero",fontsize=16,color="green",shape="box"];16411[label="wy813",fontsize=16,color="green",shape="box"];16412[label="wy758",fontsize=16,color="green",shape="box"];16413 -> 5275[label="",style="dashed", color="red", weight=0]; 16413[label="flip ltEsMyInt wy735 wy758",fontsize=16,color="magenta"];16413 -> 16516[label="",style="dashed", color="magenta", weight=3]; 16413 -> 16517[label="",style="dashed", color="magenta", weight=3]; 16497[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16497 -> 16613[label="",style="solid", color="black", weight=3]; 16498[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16498 -> 16614[label="",style="solid", color="black", weight=3]; 16499[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17375[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17375[label="",style="solid", color="burlywood", weight=9]; 17375 -> 16615[label="",style="solid", color="burlywood", weight=3]; 17376[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16499 -> 17376[label="",style="solid", color="burlywood", weight=9]; 17376 -> 16616[label="",style="solid", color="burlywood", weight=3]; 16500[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17377[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17377[label="",style="solid", color="burlywood", weight=9]; 17377 -> 16617[label="",style="solid", color="burlywood", weight=3]; 17378[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16500 -> 17378[label="",style="solid", color="burlywood", weight=9]; 17378 -> 16618[label="",style="solid", color="burlywood", weight=3]; 16501[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Pos wy7350)) LT))",fontsize=16,color="black",shape="box"];16501 -> 16619[label="",style="solid", color="black", weight=3]; 16502[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg (Succ wy73800)) (Neg wy7350)) LT))",fontsize=16,color="black",shape="box"];16502 -> 16620[label="",style="solid", color="black", weight=3]; 16503[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17379[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17379[label="",style="solid", color="burlywood", weight=9]; 17379 -> 16621[label="",style="solid", color="burlywood", weight=3]; 17380[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16503 -> 17380[label="",style="solid", color="burlywood", weight=9]; 17380 -> 16622[label="",style="solid", color="burlywood", weight=3]; 16504[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT))",fontsize=16,color="burlywood",shape="box"];17381[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17381[label="",style="solid", color="burlywood", weight=9]; 17381 -> 16623[label="",style="solid", color="burlywood", weight=3]; 17382[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];16504 -> 17382[label="",style="solid", color="burlywood", weight=9]; 17382 -> 16624[label="",style="solid", color="burlywood", weight=3]; 3636[label="primQuotInt (Pos wy160) wy17",fontsize=16,color="burlywood",shape="box"];17383[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17383[label="",style="solid", color="burlywood", weight=9]; 17383 -> 4336[label="",style="solid", color="burlywood", weight=3]; 17384[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3636 -> 17384[label="",style="solid", color="burlywood", weight=9]; 17384 -> 4337[label="",style="solid", color="burlywood", weight=3]; 3637[label="primQuotInt (Neg wy160) wy17",fontsize=16,color="burlywood",shape="box"];17385[label="wy17/Pos wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17385[label="",style="solid", color="burlywood", weight=9]; 17385 -> 4338[label="",style="solid", color="burlywood", weight=3]; 17386[label="wy17/Neg wy170",fontsize=10,color="white",style="solid",shape="box"];3637 -> 17386[label="",style="solid", color="burlywood", weight=9]; 17386 -> 4339[label="",style="solid", color="burlywood", weight=3]; 13627[label="not (esEsOrdering (primCmpNat (Succ wy20000) wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17387[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17387[label="",style="solid", color="burlywood", weight=9]; 17387 -> 14988[label="",style="solid", color="burlywood", weight=3]; 17388[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13627 -> 17388[label="",style="solid", color="burlywood", weight=9]; 17388 -> 14989[label="",style="solid", color="burlywood", weight=3]; 13628[label="not (esEsOrdering (primCmpNat Zero wy43900) GT)",fontsize=16,color="burlywood",shape="box"];17389[label="wy43900/Succ wy439000",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17389[label="",style="solid", color="burlywood", weight=9]; 17389 -> 14990[label="",style="solid", color="burlywood", weight=3]; 17390[label="wy43900/Zero",fontsize=10,color="white",style="solid",shape="box"];13628 -> 17390[label="",style="solid", color="burlywood", weight=9]; 17390 -> 14991[label="",style="solid", color="burlywood", weight=3]; 13629[label="wy43900",fontsize=16,color="green",shape="box"];13630[label="wy2000",fontsize=16,color="green",shape="box"];16559[label="wy734",fontsize=16,color="green",shape="box"];16560[label="wy7330",fontsize=16,color="green",shape="box"];16561[label="Zero",fontsize=16,color="green",shape="box"];16571[label="primPlusNat Zero wy7330",fontsize=16,color="burlywood",shape="box"];17391[label="wy7330/Succ wy73300",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17391[label="",style="solid", color="burlywood", weight=9]; 17391 -> 16625[label="",style="solid", color="burlywood", weight=3]; 17392[label="wy7330/Zero",fontsize=10,color="white",style="solid",shape="box"];16571 -> 17392[label="",style="solid", color="burlywood", weight=9]; 17392 -> 16626[label="",style="solid", color="burlywood", weight=3]; 16589[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821))",fontsize=16,color="green",shape="box"];16589 -> 16680[label="",style="dashed", color="green", weight=3]; 16590[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) otherwise",fontsize=16,color="black",shape="box"];16590 -> 16681[label="",style="solid", color="black", weight=3]; 16591[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823))",fontsize=16,color="green",shape="box"];16591 -> 16682[label="",style="dashed", color="green", weight=3]; 16592[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) otherwise",fontsize=16,color="black",shape="box"];16592 -> 16683[label="",style="solid", color="black", weight=3]; 16593[label="Succ wy73500",fontsize=16,color="green",shape="box"];16594[label="Zero",fontsize=16,color="green",shape="box"];16595[label="Zero",fontsize=16,color="green",shape="box"];16596[label="Succ wy73500",fontsize=16,color="green",shape="box"];16798 -> 16513[label="",style="dashed", color="red", weight=0]; 16798[label="primPlusNat wy7780 wy777000",fontsize=16,color="magenta"];16798 -> 16804[label="",style="dashed", color="magenta", weight=3]; 16798 -> 16805[label="",style="dashed", color="magenta", weight=3]; 16601[label="wy816",fontsize=16,color="green",shape="box"];16602 -> 5275[label="",style="dashed", color="red", weight=0]; 16602[label="flip ltEsMyInt wy753 wy780",fontsize=16,color="magenta"];16602 -> 16689[label="",style="dashed", color="magenta", weight=3]; 16602 -> 16690[label="",style="dashed", color="magenta", weight=3]; 16603[label="wy780",fontsize=16,color="green",shape="box"];16604[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16604 -> 16691[label="",style="solid", color="black", weight=3]; 16605[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16605 -> 16692[label="",style="solid", color="black", weight=3]; 16606[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17393[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17393[label="",style="solid", color="burlywood", weight=9]; 17393 -> 16693[label="",style="solid", color="burlywood", weight=3]; 17394[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16606 -> 17394[label="",style="solid", color="burlywood", weight=9]; 17394 -> 16694[label="",style="solid", color="burlywood", weight=3]; 16607[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17395[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17395[label="",style="solid", color="burlywood", weight=9]; 17395 -> 16695[label="",style="solid", color="burlywood", weight=3]; 17396[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16607 -> 17396[label="",style="solid", color="burlywood", weight=9]; 17396 -> 16696[label="",style="solid", color="burlywood", weight=3]; 16608[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Pos wy7530)) LT))",fontsize=16,color="black",shape="box"];16608 -> 16697[label="",style="solid", color="black", weight=3]; 16609[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg (Succ wy75600)) (Neg wy7530)) LT))",fontsize=16,color="black",shape="box"];16609 -> 16698[label="",style="solid", color="black", weight=3]; 16610[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17397[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17397[label="",style="solid", color="burlywood", weight=9]; 17397 -> 16699[label="",style="solid", color="burlywood", weight=3]; 17398[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16610 -> 17398[label="",style="solid", color="burlywood", weight=9]; 17398 -> 16700[label="",style="solid", color="burlywood", weight=3]; 16611[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7530)) LT))",fontsize=16,color="burlywood",shape="box"];17399[label="wy7530/Succ wy75300",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17399[label="",style="solid", color="burlywood", weight=9]; 17399 -> 16701[label="",style="solid", color="burlywood", weight=3]; 17400[label="wy7530/Zero",fontsize=10,color="white",style="solid",shape="box"];16611 -> 17400[label="",style="solid", color="burlywood", weight=9]; 17400 -> 16702[label="",style="solid", color="burlywood", weight=3]; 16741 -> 16513[label="",style="dashed", color="red", weight=0]; 16741[label="primPlusNat Zero wy7510",fontsize=16,color="magenta"];16741 -> 16763[label="",style="dashed", color="magenta", weight=3]; 16741 -> 16764[label="",style="dashed", color="magenta", weight=3]; 16746[label="wy752",fontsize=16,color="green",shape="box"];16747[label="Zero",fontsize=16,color="green",shape="box"];16748[label="wy7510",fontsize=16,color="green",shape="box"];16749[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829))",fontsize=16,color="green",shape="box"];16749 -> 16774[label="",style="dashed", color="green", weight=3]; 16750[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) otherwise",fontsize=16,color="black",shape="box"];16750 -> 16775[label="",style="solid", color="black", weight=3]; 16751[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831))",fontsize=16,color="green",shape="box"];16751 -> 16776[label="",style="dashed", color="green", weight=3]; 16752[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) otherwise",fontsize=16,color="black",shape="box"];16752 -> 16777[label="",style="solid", color="black", weight=3]; 16753[label="Succ wy75300",fontsize=16,color="green",shape="box"];16754[label="Zero",fontsize=16,color="green",shape="box"];16755[label="Zero",fontsize=16,color="green",shape="box"];16756[label="Succ wy75300",fontsize=16,color="green",shape="box"];17118 -> 5128[label="",style="dashed", color="red", weight=0]; 17118[label="primDivNatS (primMinusNatS (Succ wy850) (Succ wy851)) (Succ (Succ wy851))",fontsize=16,color="magenta"];17118 -> 17119[label="",style="dashed", color="magenta", weight=3]; 17118 -> 17120[label="",style="dashed", color="magenta", weight=3]; 16761[label="wy73400",fontsize=16,color="green",shape="box"];16762[label="wy8240",fontsize=16,color="green",shape="box"];16516[label="wy758",fontsize=16,color="green",shape="box"];16517[label="wy735",fontsize=16,color="green",shape="box"];16613 -> 16705[label="",style="dashed", color="red", weight=0]; 16613[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT))",fontsize=16,color="magenta"];16613 -> 16706[label="",style="dashed", color="magenta", weight=3]; 16614 -> 16765[label="",style="dashed", color="red", weight=0]; 16614[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16614 -> 16766[label="",style="dashed", color="magenta", weight=3]; 16615[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16615 -> 16778[label="",style="solid", color="black", weight=3]; 16616[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16616 -> 16779[label="",style="solid", color="black", weight=3]; 16617[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16617 -> 16780[label="",style="solid", color="black", weight=3]; 16618[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16618 -> 16781[label="",style="solid", color="black", weight=3]; 16619 -> 16705[label="",style="dashed", color="red", weight=0]; 16619[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16619 -> 16707[label="",style="dashed", color="magenta", weight=3]; 16620 -> 16765[label="",style="dashed", color="red", weight=0]; 16620[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT))",fontsize=16,color="magenta"];16620 -> 16767[label="",style="dashed", color="magenta", weight=3]; 16621[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16621 -> 16782[label="",style="solid", color="black", weight=3]; 16622[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16622 -> 16783[label="",style="solid", color="black", weight=3]; 16623[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT))",fontsize=16,color="black",shape="box"];16623 -> 16784[label="",style="solid", color="black", weight=3]; 16624[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16624 -> 16785[label="",style="solid", color="black", weight=3]; 4336[label="primQuotInt (Pos wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17401[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17401[label="",style="solid", color="burlywood", weight=9]; 17401 -> 4806[label="",style="solid", color="burlywood", weight=3]; 17402[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4336 -> 17402[label="",style="solid", color="burlywood", weight=9]; 17402 -> 4807[label="",style="solid", color="burlywood", weight=3]; 4337[label="primQuotInt (Pos wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17403[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17403[label="",style="solid", color="burlywood", weight=9]; 17403 -> 4808[label="",style="solid", color="burlywood", weight=3]; 17404[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4337 -> 17404[label="",style="solid", color="burlywood", weight=9]; 17404 -> 4809[label="",style="solid", color="burlywood", weight=3]; 4338[label="primQuotInt (Neg wy160) (Pos wy170)",fontsize=16,color="burlywood",shape="box"];17405[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17405[label="",style="solid", color="burlywood", weight=9]; 17405 -> 4810[label="",style="solid", color="burlywood", weight=3]; 17406[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4338 -> 17406[label="",style="solid", color="burlywood", weight=9]; 17406 -> 4811[label="",style="solid", color="burlywood", weight=3]; 4339[label="primQuotInt (Neg wy160) (Neg wy170)",fontsize=16,color="burlywood",shape="box"];17407[label="wy170/Succ wy1700",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17407[label="",style="solid", color="burlywood", weight=9]; 17407 -> 4812[label="",style="solid", color="burlywood", weight=3]; 17408[label="wy170/Zero",fontsize=10,color="white",style="solid",shape="box"];4339 -> 17408[label="",style="solid", color="burlywood", weight=9]; 17408 -> 4813[label="",style="solid", color="burlywood", weight=3]; 14988[label="not (esEsOrdering (primCmpNat (Succ wy20000) (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14988 -> 16222[label="",style="solid", color="black", weight=3]; 14989[label="not (esEsOrdering (primCmpNat (Succ wy20000) Zero) GT)",fontsize=16,color="black",shape="box"];14989 -> 16223[label="",style="solid", color="black", weight=3]; 14990[label="not (esEsOrdering (primCmpNat Zero (Succ wy439000)) GT)",fontsize=16,color="black",shape="box"];14990 -> 16224[label="",style="solid", color="black", weight=3]; 14991[label="not (esEsOrdering (primCmpNat Zero Zero) GT)",fontsize=16,color="black",shape="box"];14991 -> 16225[label="",style="solid", color="black", weight=3]; 16625[label="primPlusNat Zero (Succ wy73300)",fontsize=16,color="black",shape="box"];16625 -> 16786[label="",style="solid", color="black", weight=3]; 16626[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];16626 -> 16787[label="",style="solid", color="black", weight=3]; 16680[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821)",fontsize=16,color="black",shape="box"];16680 -> 16788[label="",style="solid", color="black", weight=3]; 16681[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy821) MyTrue",fontsize=16,color="black",shape="box"];16681 -> 16789[label="",style="solid", color="black", weight=3]; 16682[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823)",fontsize=16,color="black",shape="box"];16682 -> 16790[label="",style="solid", color="black", weight=3]; 16683[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy823) MyTrue",fontsize=16,color="black",shape="box"];16683 -> 16791[label="",style="solid", color="black", weight=3]; 16804[label="wy777000",fontsize=16,color="green",shape="box"];16805[label="wy7780",fontsize=16,color="green",shape="box"];16689[label="wy780",fontsize=16,color="green",shape="box"];16690[label="wy753",fontsize=16,color="green",shape="box"];16691 -> 16792[label="",style="dashed", color="red", weight=0]; 16691[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT))",fontsize=16,color="magenta"];16691 -> 16793[label="",style="dashed", color="magenta", weight=3]; 16692 -> 16799[label="",style="dashed", color="red", weight=0]; 16692[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16692 -> 16800[label="",style="dashed", color="magenta", weight=3]; 16693[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16693 -> 16806[label="",style="solid", color="black", weight=3]; 16694[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16694 -> 16807[label="",style="solid", color="black", weight=3]; 16695[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16695 -> 16808[label="",style="solid", color="black", weight=3]; 16696[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16696 -> 16809[label="",style="solid", color="black", weight=3]; 16697 -> 16792[label="",style="dashed", color="red", weight=0]; 16697[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16697 -> 16794[label="",style="dashed", color="magenta", weight=3]; 16698 -> 16799[label="",style="dashed", color="red", weight=0]; 16698[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT))",fontsize=16,color="magenta"];16698 -> 16801[label="",style="dashed", color="magenta", weight=3]; 16699[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16699 -> 16810[label="",style="solid", color="black", weight=3]; 16700[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT))",fontsize=16,color="black",shape="box"];16700 -> 16811[label="",style="solid", color="black", weight=3]; 16701[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy75300))) LT))",fontsize=16,color="black",shape="box"];16701 -> 16812[label="",style="solid", color="black", weight=3]; 16702[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT))",fontsize=16,color="black",shape="box"];16702 -> 16813[label="",style="solid", color="black", weight=3]; 16763[label="wy7510",fontsize=16,color="green",shape="box"];16764[label="Zero",fontsize=16,color="green",shape="box"];16774[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829)",fontsize=16,color="black",shape="box"];16774 -> 16814[label="",style="solid", color="black", weight=3]; 16775[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy829) MyTrue",fontsize=16,color="black",shape="box"];16775 -> 16815[label="",style="solid", color="black", weight=3]; 16776[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831)",fontsize=16,color="black",shape="box"];16776 -> 16816[label="",style="solid", color="black", weight=3]; 16777[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy831) MyTrue",fontsize=16,color="black",shape="box"];16777 -> 16817[label="",style="solid", color="black", weight=3]; 17119 -> 13663[label="",style="dashed", color="red", weight=0]; 17119[label="primMinusNatS (Succ wy850) (Succ wy851)",fontsize=16,color="magenta"];17119 -> 17121[label="",style="dashed", color="magenta", weight=3]; 17119 -> 17122[label="",style="dashed", color="magenta", weight=3]; 17120[label="Succ wy851",fontsize=16,color="green",shape="box"];16706 -> 14963[label="",style="dashed", color="red", weight=0]; 16706[label="not (esEsOrdering (primCmpNat (Succ wy73800) wy7350) LT)",fontsize=16,color="magenta"];16706 -> 16820[label="",style="dashed", color="magenta", weight=3]; 16706 -> 16821[label="",style="dashed", color="magenta", weight=3]; 16705[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy832",fontsize=16,color="burlywood",shape="triangle"];17409[label="wy832/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17409[label="",style="solid", color="burlywood", weight=9]; 17409 -> 16822[label="",style="solid", color="burlywood", weight=3]; 17410[label="wy832/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16705 -> 17410[label="",style="solid", color="burlywood", weight=9]; 17410 -> 16823[label="",style="solid", color="burlywood", weight=3]; 16766 -> 13404[label="",style="dashed", color="red", weight=0]; 16766[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16765[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) wy834",fontsize=16,color="burlywood",shape="triangle"];17411[label="wy834/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17411[label="",style="solid", color="burlywood", weight=9]; 17411 -> 16824[label="",style="solid", color="burlywood", weight=3]; 17412[label="wy834/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16765 -> 17412[label="",style="solid", color="burlywood", weight=9]; 17412 -> 16825[label="",style="solid", color="burlywood", weight=3]; 16778 -> 16705[label="",style="dashed", color="red", weight=0]; 16778[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT))",fontsize=16,color="magenta"];16778 -> 16826[label="",style="dashed", color="magenta", weight=3]; 16778 -> 16827[label="",style="dashed", color="magenta", weight=3]; 16779 -> 16705[label="",style="dashed", color="red", weight=0]; 16779[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16779 -> 16828[label="",style="dashed", color="magenta", weight=3]; 16779 -> 16829[label="",style="dashed", color="magenta", weight=3]; 16780 -> 16765[label="",style="dashed", color="red", weight=0]; 16780[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16780 -> 16830[label="",style="dashed", color="magenta", weight=3]; 16780 -> 16831[label="",style="dashed", color="magenta", weight=3]; 16781 -> 16765[label="",style="dashed", color="red", weight=0]; 16781[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16781 -> 16832[label="",style="dashed", color="magenta", weight=3]; 16781 -> 16833[label="",style="dashed", color="magenta", weight=3]; 16707 -> 14929[label="",style="dashed", color="red", weight=0]; 16707[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16767 -> 14963[label="",style="dashed", color="red", weight=0]; 16767[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy73800)) LT)",fontsize=16,color="magenta"];16767 -> 16834[label="",style="dashed", color="magenta", weight=3]; 16767 -> 16835[label="",style="dashed", color="magenta", weight=3]; 16782 -> 16705[label="",style="dashed", color="red", weight=0]; 16782[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16782 -> 16836[label="",style="dashed", color="magenta", weight=3]; 16782 -> 16837[label="",style="dashed", color="magenta", weight=3]; 16783 -> 16705[label="",style="dashed", color="red", weight=0]; 16783[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16783 -> 16838[label="",style="dashed", color="magenta", weight=3]; 16783 -> 16839[label="",style="dashed", color="magenta", weight=3]; 16784 -> 16765[label="",style="dashed", color="red", weight=0]; 16784[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy73500))) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT))",fontsize=16,color="magenta"];16784 -> 16840[label="",style="dashed", color="magenta", weight=3]; 16784 -> 16841[label="",style="dashed", color="magenta", weight=3]; 16785 -> 16765[label="",style="dashed", color="red", weight=0]; 16785[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16785 -> 16842[label="",style="dashed", color="magenta", weight=3]; 16785 -> 16843[label="",style="dashed", color="magenta", weight=3]; 4806[label="primQuotInt (Pos wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4806 -> 5031[label="",style="solid", color="black", weight=3]; 4807[label="primQuotInt (Pos wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4807 -> 5032[label="",style="solid", color="black", weight=3]; 4808[label="primQuotInt (Pos wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4808 -> 5033[label="",style="solid", color="black", weight=3]; 4809[label="primQuotInt (Pos wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4809 -> 5034[label="",style="solid", color="black", weight=3]; 4810[label="primQuotInt (Neg wy160) (Pos (Succ wy1700))",fontsize=16,color="black",shape="box"];4810 -> 5035[label="",style="solid", color="black", weight=3]; 4811[label="primQuotInt (Neg wy160) (Pos Zero)",fontsize=16,color="black",shape="box"];4811 -> 5036[label="",style="solid", color="black", weight=3]; 4812[label="primQuotInt (Neg wy160) (Neg (Succ wy1700))",fontsize=16,color="black",shape="box"];4812 -> 5037[label="",style="solid", color="black", weight=3]; 4813[label="primQuotInt (Neg wy160) (Neg Zero)",fontsize=16,color="black",shape="box"];4813 -> 5038[label="",style="solid", color="black", weight=3]; 16222 -> 10560[label="",style="dashed", color="red", weight=0]; 16222[label="not (esEsOrdering (primCmpNat wy20000 wy439000) GT)",fontsize=16,color="magenta"];16222 -> 16305[label="",style="dashed", color="magenta", weight=3]; 16222 -> 16306[label="",style="dashed", color="magenta", weight=3]; 16223 -> 7351[label="",style="dashed", color="red", weight=0]; 16223[label="not (esEsOrdering GT GT)",fontsize=16,color="magenta"];16224 -> 7356[label="",style="dashed", color="red", weight=0]; 16224[label="not (esEsOrdering LT GT)",fontsize=16,color="magenta"];16225 -> 7425[label="",style="dashed", color="red", weight=0]; 16225[label="not (esEsOrdering EQ GT)",fontsize=16,color="magenta"];16786[label="Succ wy73300",fontsize=16,color="green",shape="box"];16787[label="Zero",fontsize=16,color="green",shape="box"];16788 -> 16844[label="",style="dashed", color="red", weight=0]; 16788[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy821)))",fontsize=16,color="magenta"];16788 -> 16845[label="",style="dashed", color="magenta", weight=3]; 16789[label="Nil",fontsize=16,color="green",shape="box"];16790 -> 16846[label="",style="dashed", color="red", weight=0]; 16790[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) (psMyInt (msMyInt (Pos Zero) wy732) wy823)))",fontsize=16,color="magenta"];16790 -> 16847[label="",style="dashed", color="magenta", weight=3]; 16791[label="Nil",fontsize=16,color="green",shape="box"];16793 -> 14963[label="",style="dashed", color="red", weight=0]; 16793[label="not (esEsOrdering (primCmpNat (Succ wy75600) wy7530) LT)",fontsize=16,color="magenta"];16793 -> 16848[label="",style="dashed", color="magenta", weight=3]; 16793 -> 16849[label="",style="dashed", color="magenta", weight=3]; 16792[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy835",fontsize=16,color="burlywood",shape="triangle"];17413[label="wy835/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17413[label="",style="solid", color="burlywood", weight=9]; 17413 -> 16850[label="",style="solid", color="burlywood", weight=3]; 17414[label="wy835/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16792 -> 17414[label="",style="solid", color="burlywood", weight=9]; 17414 -> 16851[label="",style="solid", color="burlywood", weight=3]; 16800 -> 13404[label="",style="dashed", color="red", weight=0]; 16800[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16799[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) wy836",fontsize=16,color="burlywood",shape="triangle"];17415[label="wy836/MyTrue",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17415[label="",style="solid", color="burlywood", weight=9]; 17415 -> 16852[label="",style="solid", color="burlywood", weight=3]; 17416[label="wy836/MyFalse",fontsize=10,color="white",style="solid",shape="box"];16799 -> 17416[label="",style="solid", color="burlywood", weight=9]; 17416 -> 16853[label="",style="solid", color="burlywood", weight=3]; 16806 -> 16792[label="",style="dashed", color="red", weight=0]; 16806[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT))",fontsize=16,color="magenta"];16806 -> 16854[label="",style="dashed", color="magenta", weight=3]; 16806 -> 16855[label="",style="dashed", color="magenta", weight=3]; 16807 -> 16792[label="",style="dashed", color="red", weight=0]; 16807[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16807 -> 16856[label="",style="dashed", color="magenta", weight=3]; 16807 -> 16857[label="",style="dashed", color="magenta", weight=3]; 16808 -> 16799[label="",style="dashed", color="red", weight=0]; 16808[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering GT LT))",fontsize=16,color="magenta"];16808 -> 16858[label="",style="dashed", color="magenta", weight=3]; 16808 -> 16859[label="",style="dashed", color="magenta", weight=3]; 16809 -> 16799[label="",style="dashed", color="red", weight=0]; 16809[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16809 -> 16860[label="",style="dashed", color="magenta", weight=3]; 16809 -> 16861[label="",style="dashed", color="magenta", weight=3]; 16794 -> 14929[label="",style="dashed", color="red", weight=0]; 16794[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16801 -> 14963[label="",style="dashed", color="red", weight=0]; 16801[label="not (esEsOrdering (primCmpNat wy7530 (Succ wy75600)) LT)",fontsize=16,color="magenta"];16801 -> 16862[label="",style="dashed", color="magenta", weight=3]; 16801 -> 16863[label="",style="dashed", color="magenta", weight=3]; 16810 -> 16792[label="",style="dashed", color="red", weight=0]; 16810[label="takeWhile1 (flip gtEsMyInt (Pos (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering LT LT))",fontsize=16,color="magenta"];16810 -> 16864[label="",style="dashed", color="magenta", weight=3]; 16810 -> 16865[label="",style="dashed", color="magenta", weight=3]; 16811 -> 16792[label="",style="dashed", color="red", weight=0]; 16811[label="takeWhile1 (flip gtEsMyInt (Pos Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16811 -> 16866[label="",style="dashed", color="magenta", weight=3]; 16811 -> 16867[label="",style="dashed", color="magenta", weight=3]; 16812 -> 16799[label="",style="dashed", color="red", weight=0]; 16812[label="takeWhile1 (flip gtEsMyInt (Neg (Succ wy75300))) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT))",fontsize=16,color="magenta"];16812 -> 16868[label="",style="dashed", color="magenta", weight=3]; 16812 -> 16869[label="",style="dashed", color="magenta", weight=3]; 16813 -> 16799[label="",style="dashed", color="red", weight=0]; 16813[label="takeWhile1 (flip gtEsMyInt (Neg Zero)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) (not (esEsOrdering EQ LT))",fontsize=16,color="magenta"];16813 -> 16870[label="",style="dashed", color="magenta", weight=3]; 16813 -> 16871[label="",style="dashed", color="magenta", weight=3]; 16814 -> 16872[label="",style="dashed", color="red", weight=0]; 16814[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy829)))",fontsize=16,color="magenta"];16814 -> 16873[label="",style="dashed", color="magenta", weight=3]; 16815[label="Nil",fontsize=16,color="green",shape="box"];16816 -> 16874[label="",style="dashed", color="red", weight=0]; 16816[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) (psMyInt (msMyInt (Neg Zero) wy750) wy831)))",fontsize=16,color="magenta"];16816 -> 16875[label="",style="dashed", color="magenta", weight=3]; 16817[label="Nil",fontsize=16,color="green",shape="box"];17121[label="Succ wy851",fontsize=16,color="green",shape="box"];17122[label="Succ wy850",fontsize=16,color="green",shape="box"];16820[label="wy7350",fontsize=16,color="green",shape="box"];16821[label="Succ wy73800",fontsize=16,color="green",shape="box"];16822[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16822 -> 16876[label="",style="solid", color="black", weight=3]; 16823[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16823 -> 16877[label="",style="solid", color="black", weight=3]; 16824[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16824 -> 16878[label="",style="solid", color="black", weight=3]; 16825[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyFalse",fontsize=16,color="black",shape="box"];16825 -> 16879[label="",style="solid", color="black", weight=3]; 16826[label="Succ wy73500",fontsize=16,color="green",shape="box"];16827 -> 14963[label="",style="dashed", color="red", weight=0]; 16827[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];16827 -> 16880[label="",style="dashed", color="magenta", weight=3]; 16827 -> 16881[label="",style="dashed", color="magenta", weight=3]; 16828[label="Zero",fontsize=16,color="green",shape="box"];16829 -> 14908[label="",style="dashed", color="red", weight=0]; 16829[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16830[label="Succ wy73500",fontsize=16,color="green",shape="box"];16831 -> 13404[label="",style="dashed", color="red", weight=0]; 16831[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16832[label="Zero",fontsize=16,color="green",shape="box"];16833 -> 14908[label="",style="dashed", color="red", weight=0]; 16833[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16834[label="Succ wy73800",fontsize=16,color="green",shape="box"];16835[label="wy7350",fontsize=16,color="green",shape="box"];16836[label="Succ wy73500",fontsize=16,color="green",shape="box"];16837 -> 14929[label="",style="dashed", color="red", weight=0]; 16837[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16838[label="Zero",fontsize=16,color="green",shape="box"];16839 -> 14908[label="",style="dashed", color="red", weight=0]; 16839[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16840[label="Succ wy73500",fontsize=16,color="green",shape="box"];16841 -> 14963[label="",style="dashed", color="red", weight=0]; 16841[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];16841 -> 16882[label="",style="dashed", color="magenta", weight=3]; 16841 -> 16883[label="",style="dashed", color="magenta", weight=3]; 16842[label="Zero",fontsize=16,color="green",shape="box"];16843 -> 14908[label="",style="dashed", color="red", weight=0]; 16843[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];5031[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5031 -> 5128[label="",style="dashed", color="green", weight=3]; 5032[label="error",fontsize=16,color="black",shape="triangle"];5032 -> 5129[label="",style="solid", color="black", weight=3]; 5033[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5033 -> 5130[label="",style="dashed", color="green", weight=3]; 5034 -> 5032[label="",style="dashed", color="red", weight=0]; 5034[label="error",fontsize=16,color="magenta"];5035[label="Neg (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5035 -> 5131[label="",style="dashed", color="green", weight=3]; 5036 -> 5032[label="",style="dashed", color="red", weight=0]; 5036[label="error",fontsize=16,color="magenta"];5037[label="Pos (primDivNatS wy160 (Succ wy1700))",fontsize=16,color="green",shape="box"];5037 -> 5132[label="",style="dashed", color="green", weight=3]; 5038 -> 5032[label="",style="dashed", color="red", weight=0]; 5038[label="error",fontsize=16,color="magenta"];16305[label="wy20000",fontsize=16,color="green",shape="box"];16306[label="wy439000",fontsize=16,color="green",shape="box"];16845 -> 16277[label="",style="dashed", color="red", weight=0]; 16845[label="psMyInt (msMyInt (Pos Zero) wy732) wy821",fontsize=16,color="magenta"];16845 -> 16884[label="",style="dashed", color="magenta", weight=3]; 16845 -> 16885[label="",style="dashed", color="magenta", weight=3]; 16844[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="triangle"];16844 -> 16886[label="",style="solid", color="black", weight=3]; 16847 -> 16277[label="",style="dashed", color="red", weight=0]; 16847[label="psMyInt (msMyInt (Pos Zero) wy732) wy823",fontsize=16,color="magenta"];16847 -> 16887[label="",style="dashed", color="magenta", weight=3]; 16847 -> 16888[label="",style="dashed", color="magenta", weight=3]; 16846[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="triangle"];16846 -> 16889[label="",style="solid", color="black", weight=3]; 16848[label="wy7530",fontsize=16,color="green",shape="box"];16849[label="Succ wy75600",fontsize=16,color="green",shape="box"];16850[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16850 -> 16890[label="",style="solid", color="black", weight=3]; 16851[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16851 -> 16891[label="",style="solid", color="black", weight=3]; 16852[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16852 -> 16892[label="",style="solid", color="black", weight=3]; 16853[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyFalse",fontsize=16,color="black",shape="box"];16853 -> 16893[label="",style="solid", color="black", weight=3]; 16854[label="Succ wy75300",fontsize=16,color="green",shape="box"];16855 -> 14963[label="",style="dashed", color="red", weight=0]; 16855[label="not (esEsOrdering (primCmpNat Zero (Succ wy75300)) LT)",fontsize=16,color="magenta"];16855 -> 16894[label="",style="dashed", color="magenta", weight=3]; 16855 -> 16895[label="",style="dashed", color="magenta", weight=3]; 16856[label="Zero",fontsize=16,color="green",shape="box"];16857 -> 14908[label="",style="dashed", color="red", weight=0]; 16857[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16858 -> 13404[label="",style="dashed", color="red", weight=0]; 16858[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];16859[label="Succ wy75300",fontsize=16,color="green",shape="box"];16860 -> 14908[label="",style="dashed", color="red", weight=0]; 16860[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16861[label="Zero",fontsize=16,color="green",shape="box"];16862[label="Succ wy75600",fontsize=16,color="green",shape="box"];16863[label="wy7530",fontsize=16,color="green",shape="box"];16864[label="Succ wy75300",fontsize=16,color="green",shape="box"];16865 -> 14929[label="",style="dashed", color="red", weight=0]; 16865[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];16866[label="Zero",fontsize=16,color="green",shape="box"];16867 -> 14908[label="",style="dashed", color="red", weight=0]; 16867[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16868 -> 14963[label="",style="dashed", color="red", weight=0]; 16868[label="not (esEsOrdering (primCmpNat (Succ wy75300) Zero) LT)",fontsize=16,color="magenta"];16868 -> 16896[label="",style="dashed", color="magenta", weight=3]; 16868 -> 16897[label="",style="dashed", color="magenta", weight=3]; 16869[label="Succ wy75300",fontsize=16,color="green",shape="box"];16870 -> 14908[label="",style="dashed", color="red", weight=0]; 16870[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];16871[label="Zero",fontsize=16,color="green",shape="box"];16873 -> 16457[label="",style="dashed", color="red", weight=0]; 16873[label="psMyInt (msMyInt (Neg Zero) wy750) wy829",fontsize=16,color="magenta"];16873 -> 16898[label="",style="dashed", color="magenta", weight=3]; 16873 -> 16899[label="",style="dashed", color="magenta", weight=3]; 16872[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="triangle"];16872 -> 16900[label="",style="solid", color="black", weight=3]; 16875 -> 16457[label="",style="dashed", color="red", weight=0]; 16875[label="psMyInt (msMyInt (Neg Zero) wy750) wy831",fontsize=16,color="magenta"];16875 -> 16901[label="",style="dashed", color="magenta", weight=3]; 16875 -> 16902[label="",style="dashed", color="magenta", weight=3]; 16874[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="triangle"];16874 -> 16903[label="",style="solid", color="black", weight=3]; 16876[label="Cons wy731 (takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16876 -> 16911[label="",style="dashed", color="green", weight=3]; 16877[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16877 -> 16912[label="",style="solid", color="black", weight=3]; 16878[label="Cons wy731 (takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758))",fontsize=16,color="green",shape="box"];16878 -> 16913[label="",style="dashed", color="green", weight=3]; 16879[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) otherwise",fontsize=16,color="black",shape="box"];16879 -> 16914[label="",style="solid", color="black", weight=3]; 16880[label="Succ wy73500",fontsize=16,color="green",shape="box"];16881[label="Zero",fontsize=16,color="green",shape="box"];16882[label="Zero",fontsize=16,color="green",shape="box"];16883[label="Succ wy73500",fontsize=16,color="green",shape="box"];5129[label="stop MyTrue",fontsize=16,color="black",shape="box"];5129 -> 6027[label="",style="solid", color="black", weight=3]; 5130 -> 5128[label="",style="dashed", color="red", weight=0]; 5130[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5130 -> 6028[label="",style="dashed", color="magenta", weight=3]; 5131 -> 5128[label="",style="dashed", color="red", weight=0]; 5131[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5131 -> 6029[label="",style="dashed", color="magenta", weight=3]; 5132 -> 5128[label="",style="dashed", color="red", weight=0]; 5132[label="primDivNatS wy160 (Succ wy1700)",fontsize=16,color="magenta"];5132 -> 6030[label="",style="dashed", color="magenta", weight=3]; 5132 -> 6031[label="",style="dashed", color="magenta", weight=3]; 16884[label="wy732",fontsize=16,color="green",shape="box"];16885[label="wy821",fontsize=16,color="green",shape="box"];16886[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837))",fontsize=16,color="black",shape="box"];16886 -> 16915[label="",style="solid", color="black", weight=3]; 16887[label="wy732",fontsize=16,color="green",shape="box"];16888[label="wy823",fontsize=16,color="green",shape="box"];16889[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838))",fontsize=16,color="black",shape="box"];16889 -> 16916[label="",style="solid", color="black", weight=3]; 16890[label="Cons wy749 (takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16890 -> 16917[label="",style="dashed", color="green", weight=3]; 16891[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16891 -> 16918[label="",style="solid", color="black", weight=3]; 16892[label="Cons wy749 (takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780))",fontsize=16,color="green",shape="box"];16892 -> 16919[label="",style="dashed", color="green", weight=3]; 16893[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) otherwise",fontsize=16,color="black",shape="box"];16893 -> 16920[label="",style="solid", color="black", weight=3]; 16894[label="Succ wy75300",fontsize=16,color="green",shape="box"];16895[label="Zero",fontsize=16,color="green",shape="box"];16896[label="Zero",fontsize=16,color="green",shape="box"];16897[label="Succ wy75300",fontsize=16,color="green",shape="box"];16898[label="wy750",fontsize=16,color="green",shape="box"];16899[label="wy829",fontsize=16,color="green",shape="box"];16900[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839))",fontsize=16,color="black",shape="box"];16900 -> 16921[label="",style="solid", color="black", weight=3]; 16901[label="wy750",fontsize=16,color="green",shape="box"];16902[label="wy831",fontsize=16,color="green",shape="box"];16903[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840))",fontsize=16,color="black",shape="box"];16903 -> 16922[label="",style="solid", color="black", weight=3]; 16911[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16911 -> 16927[label="",style="solid", color="black", weight=3]; 16912[label="takeWhile0 (flip gtEsMyInt (Pos wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16912 -> 16928[label="",style="solid", color="black", weight=3]; 16913[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758)",fontsize=16,color="black",shape="box"];16913 -> 16929[label="",style="solid", color="black", weight=3]; 16914[label="takeWhile0 (flip gtEsMyInt (Neg wy7350)) wy731 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy758) MyTrue",fontsize=16,color="black",shape="box"];16914 -> 16930[label="",style="solid", color="black", weight=3]; 6027[label="error []",fontsize=16,color="red",shape="box"];6028[label="wy1700",fontsize=16,color="green",shape="box"];6029[label="wy160",fontsize=16,color="green",shape="box"];6030[label="wy160",fontsize=16,color="green",shape="box"];6031[label="wy1700",fontsize=16,color="green",shape="box"];16915 -> 16448[label="",style="dashed", color="red", weight=0]; 16915[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy821 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy837) (flip gtEsMyInt (Pos wy7350) wy821)",fontsize=16,color="magenta"];16915 -> 16931[label="",style="dashed", color="magenta", weight=3]; 16915 -> 16932[label="",style="dashed", color="magenta", weight=3]; 16915 -> 16933[label="",style="dashed", color="magenta", weight=3]; 16916 -> 16459[label="",style="dashed", color="red", weight=0]; 16916[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy823 (iterate (psMyInt (msMyInt (Pos Zero) wy732)) wy838) (flip gtEsMyInt (Neg wy7350) wy823)",fontsize=16,color="magenta"];16916 -> 16934[label="",style="dashed", color="magenta", weight=3]; 16916 -> 16935[label="",style="dashed", color="magenta", weight=3]; 16916 -> 16936[label="",style="dashed", color="magenta", weight=3]; 16917[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16917 -> 16937[label="",style="solid", color="black", weight=3]; 16918[label="takeWhile0 (flip gtEsMyInt (Pos wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16918 -> 16938[label="",style="solid", color="black", weight=3]; 16919[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780)",fontsize=16,color="black",shape="box"];16919 -> 16939[label="",style="solid", color="black", weight=3]; 16920[label="takeWhile0 (flip gtEsMyInt (Neg wy7530)) wy749 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy780) MyTrue",fontsize=16,color="black",shape="box"];16920 -> 16940[label="",style="solid", color="black", weight=3]; 16921 -> 16642[label="",style="dashed", color="red", weight=0]; 16921[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy829 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy839) (flip gtEsMyInt (Pos wy7530) wy829)",fontsize=16,color="magenta"];16921 -> 16941[label="",style="dashed", color="magenta", weight=3]; 16921 -> 16942[label="",style="dashed", color="magenta", weight=3]; 16921 -> 16943[label="",style="dashed", color="magenta", weight=3]; 16922 -> 16650[label="",style="dashed", color="red", weight=0]; 16922[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy831 (iterate (psMyInt (msMyInt (Neg Zero) wy750)) wy840) (flip gtEsMyInt (Neg wy7530) wy831)",fontsize=16,color="magenta"];16922 -> 16944[label="",style="dashed", color="magenta", weight=3]; 16922 -> 16945[label="",style="dashed", color="magenta", weight=3]; 16922 -> 16946[label="",style="dashed", color="magenta", weight=3]; 16927 -> 16951[label="",style="dashed", color="red", weight=0]; 16927[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16927 -> 16952[label="",style="dashed", color="magenta", weight=3]; 16928[label="Nil",fontsize=16,color="green",shape="box"];16929 -> 16953[label="",style="dashed", color="red", weight=0]; 16929[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) (psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758)))",fontsize=16,color="magenta"];16929 -> 16954[label="",style="dashed", color="magenta", weight=3]; 16930[label="Nil",fontsize=16,color="green",shape="box"];16931[label="wy821",fontsize=16,color="green",shape="box"];16932[label="flip gtEsMyInt (Pos wy7350) wy821",fontsize=16,color="black",shape="triangle"];16932 -> 16955[label="",style="solid", color="black", weight=3]; 16933[label="wy837",fontsize=16,color="green",shape="box"];16934[label="wy823",fontsize=16,color="green",shape="box"];16935[label="flip gtEsMyInt (Neg wy7350) wy823",fontsize=16,color="black",shape="triangle"];16935 -> 16956[label="",style="solid", color="black", weight=3]; 16936[label="wy838",fontsize=16,color="green",shape="box"];16937 -> 16957[label="",style="dashed", color="red", weight=0]; 16937[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16937 -> 16958[label="",style="dashed", color="magenta", weight=3]; 16938[label="Nil",fontsize=16,color="green",shape="box"];16939 -> 16959[label="",style="dashed", color="red", weight=0]; 16939[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) (psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780)))",fontsize=16,color="magenta"];16939 -> 16960[label="",style="dashed", color="magenta", weight=3]; 16940[label="Nil",fontsize=16,color="green",shape="box"];16941 -> 16932[label="",style="dashed", color="red", weight=0]; 16941[label="flip gtEsMyInt (Pos wy7530) wy829",fontsize=16,color="magenta"];16941 -> 16961[label="",style="dashed", color="magenta", weight=3]; 16941 -> 16962[label="",style="dashed", color="magenta", weight=3]; 16942[label="wy829",fontsize=16,color="green",shape="box"];16943[label="wy839",fontsize=16,color="green",shape="box"];16944 -> 16935[label="",style="dashed", color="red", weight=0]; 16944[label="flip gtEsMyInt (Neg wy7530) wy831",fontsize=16,color="magenta"];16944 -> 16963[label="",style="dashed", color="magenta", weight=3]; 16944 -> 16964[label="",style="dashed", color="magenta", weight=3]; 16945[label="wy840",fontsize=16,color="green",shape="box"];16946[label="wy831",fontsize=16,color="green",shape="box"];16952 -> 12676[label="",style="dashed", color="red", weight=0]; 16952[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16952 -> 16965[label="",style="dashed", color="magenta", weight=3]; 16952 -> 16966[label="",style="dashed", color="magenta", weight=3]; 16952 -> 16967[label="",style="dashed", color="magenta", weight=3]; 16951[label="takeWhile (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="triangle"];16951 -> 16968[label="",style="solid", color="black", weight=3]; 16954 -> 12676[label="",style="dashed", color="red", weight=0]; 16954[label="psMyInt (msMyInt (Pos (Succ wy762)) wy732) wy758",fontsize=16,color="magenta"];16954 -> 16969[label="",style="dashed", color="magenta", weight=3]; 16954 -> 16970[label="",style="dashed", color="magenta", weight=3]; 16954 -> 16971[label="",style="dashed", color="magenta", weight=3]; 16953[label="takeWhile (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="triangle"];16953 -> 16972[label="",style="solid", color="black", weight=3]; 16955[label="gtEsMyInt wy821 (Pos wy7350)",fontsize=16,color="black",shape="box"];16955 -> 16973[label="",style="solid", color="black", weight=3]; 16956[label="gtEsMyInt wy823 (Neg wy7350)",fontsize=16,color="black",shape="box"];16956 -> 16974[label="",style="solid", color="black", weight=3]; 16958 -> 14894[label="",style="dashed", color="red", weight=0]; 16958[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16958 -> 16975[label="",style="dashed", color="magenta", weight=3]; 16958 -> 16976[label="",style="dashed", color="magenta", weight=3]; 16958 -> 16977[label="",style="dashed", color="magenta", weight=3]; 16957[label="takeWhile (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="triangle"];16957 -> 16978[label="",style="solid", color="black", weight=3]; 16960 -> 14894[label="",style="dashed", color="red", weight=0]; 16960[label="psMyInt (msMyInt (Neg (Succ wy784)) wy750) wy780",fontsize=16,color="magenta"];16960 -> 16979[label="",style="dashed", color="magenta", weight=3]; 16960 -> 16980[label="",style="dashed", color="magenta", weight=3]; 16960 -> 16981[label="",style="dashed", color="magenta", weight=3]; 16959[label="takeWhile (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="triangle"];16959 -> 16982[label="",style="solid", color="black", weight=3]; 16961[label="wy7530",fontsize=16,color="green",shape="box"];16962[label="wy829",fontsize=16,color="green",shape="box"];16963[label="wy7530",fontsize=16,color="green",shape="box"];16964[label="wy831",fontsize=16,color="green",shape="box"];16965[label="wy758",fontsize=16,color="green",shape="box"];16966[label="wy732",fontsize=16,color="green",shape="box"];16967[label="wy762",fontsize=16,color="green",shape="box"];16968[label="takeWhile2 (flip gtEsMyInt (Pos wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845))",fontsize=16,color="black",shape="box"];16968 -> 16991[label="",style="solid", color="black", weight=3]; 16969[label="wy758",fontsize=16,color="green",shape="box"];16970[label="wy732",fontsize=16,color="green",shape="box"];16971[label="wy762",fontsize=16,color="green",shape="box"];16972[label="takeWhile2 (flip gtEsMyInt (Neg wy7350)) (Cons wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846))",fontsize=16,color="black",shape="box"];16972 -> 16992[label="",style="solid", color="black", weight=3]; 16973[label="fsEsOrdering (compareMyInt wy821 (Pos wy7350)) LT",fontsize=16,color="black",shape="box"];16973 -> 16993[label="",style="solid", color="black", weight=3]; 16974[label="fsEsOrdering (compareMyInt wy823 (Neg wy7350)) LT",fontsize=16,color="black",shape="box"];16974 -> 16994[label="",style="solid", color="black", weight=3]; 16975[label="wy784",fontsize=16,color="green",shape="box"];16976[label="wy780",fontsize=16,color="green",shape="box"];16977[label="wy750",fontsize=16,color="green",shape="box"];16978[label="takeWhile2 (flip gtEsMyInt (Pos wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847))",fontsize=16,color="black",shape="box"];16978 -> 16995[label="",style="solid", color="black", weight=3]; 16979[label="wy784",fontsize=16,color="green",shape="box"];16980[label="wy780",fontsize=16,color="green",shape="box"];16981[label="wy750",fontsize=16,color="green",shape="box"];16982[label="takeWhile2 (flip gtEsMyInt (Neg wy7530)) (Cons wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848))",fontsize=16,color="black",shape="box"];16982 -> 16996[label="",style="solid", color="black", weight=3]; 16991 -> 14839[label="",style="dashed", color="red", weight=0]; 16991[label="takeWhile1 (flip gtEsMyInt (Pos wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy845) (flip gtEsMyInt (Pos wy7350) wy758)",fontsize=16,color="magenta"];16991 -> 17001[label="",style="dashed", color="magenta", weight=3]; 16991 -> 17002[label="",style="dashed", color="magenta", weight=3]; 16991 -> 17003[label="",style="dashed", color="magenta", weight=3]; 16991 -> 17004[label="",style="dashed", color="magenta", weight=3]; 16992 -> 14839[label="",style="dashed", color="red", weight=0]; 16992[label="takeWhile1 (flip gtEsMyInt (Neg wy7350)) wy758 (iterate (psMyInt (msMyInt (Pos (Succ wy762)) wy732)) wy846) (flip gtEsMyInt (Neg wy7350) wy758)",fontsize=16,color="magenta"];16992 -> 17005[label="",style="dashed", color="magenta", weight=3]; 16992 -> 17006[label="",style="dashed", color="magenta", weight=3]; 16992 -> 17007[label="",style="dashed", color="magenta", weight=3]; 16992 -> 17008[label="",style="dashed", color="magenta", weight=3]; 16993[label="not (esEsOrdering (compareMyInt wy821 (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];16993 -> 17009[label="",style="solid", color="black", weight=3]; 16994[label="not (esEsOrdering (compareMyInt wy823 (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];16994 -> 17010[label="",style="solid", color="black", weight=3]; 16995 -> 16244[label="",style="dashed", color="red", weight=0]; 16995[label="takeWhile1 (flip gtEsMyInt (Pos wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy847) (flip gtEsMyInt (Pos wy7530) wy780)",fontsize=16,color="magenta"];16995 -> 17011[label="",style="dashed", color="magenta", weight=3]; 16995 -> 17012[label="",style="dashed", color="magenta", weight=3]; 16995 -> 17013[label="",style="dashed", color="magenta", weight=3]; 16995 -> 17014[label="",style="dashed", color="magenta", weight=3]; 16996 -> 16244[label="",style="dashed", color="red", weight=0]; 16996[label="takeWhile1 (flip gtEsMyInt (Neg wy7530)) wy780 (iterate (psMyInt (msMyInt (Neg (Succ wy784)) wy750)) wy848) (flip gtEsMyInt (Neg wy7530) wy780)",fontsize=16,color="magenta"];16996 -> 17015[label="",style="dashed", color="magenta", weight=3]; 16996 -> 17016[label="",style="dashed", color="magenta", weight=3]; 16996 -> 17017[label="",style="dashed", color="magenta", weight=3]; 16996 -> 17018[label="",style="dashed", color="magenta", weight=3]; 17001[label="wy845",fontsize=16,color="green",shape="box"];17002[label="wy758",fontsize=16,color="green",shape="box"];17003[label="wy758",fontsize=16,color="green",shape="box"];17004[label="Pos wy7350",fontsize=16,color="green",shape="box"];17005[label="wy846",fontsize=16,color="green",shape="box"];17006[label="wy758",fontsize=16,color="green",shape="box"];17007[label="wy758",fontsize=16,color="green",shape="box"];17008[label="Neg wy7350",fontsize=16,color="green",shape="box"];17009[label="not (esEsOrdering (primCmpInt wy821 (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17417[label="wy821/Pos wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17417[label="",style="solid", color="burlywood", weight=9]; 17417 -> 17023[label="",style="solid", color="burlywood", weight=3]; 17418[label="wy821/Neg wy8210",fontsize=10,color="white",style="solid",shape="box"];17009 -> 17418[label="",style="solid", color="burlywood", weight=9]; 17418 -> 17024[label="",style="solid", color="burlywood", weight=3]; 17010[label="not (esEsOrdering (primCmpInt wy823 (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17419[label="wy823/Pos wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17419[label="",style="solid", color="burlywood", weight=9]; 17419 -> 17025[label="",style="solid", color="burlywood", weight=3]; 17420[label="wy823/Neg wy8230",fontsize=10,color="white",style="solid",shape="box"];17010 -> 17420[label="",style="solid", color="burlywood", weight=9]; 17420 -> 17026[label="",style="solid", color="burlywood", weight=3]; 17011[label="Pos wy7530",fontsize=16,color="green",shape="box"];17012[label="wy780",fontsize=16,color="green",shape="box"];17013[label="wy847",fontsize=16,color="green",shape="box"];17014[label="wy780",fontsize=16,color="green",shape="box"];17015[label="Neg wy7530",fontsize=16,color="green",shape="box"];17016[label="wy780",fontsize=16,color="green",shape="box"];17017[label="wy848",fontsize=16,color="green",shape="box"];17018[label="wy780",fontsize=16,color="green",shape="box"];17023[label="not (esEsOrdering (primCmpInt (Pos wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17421[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17421[label="",style="solid", color="burlywood", weight=9]; 17421 -> 17070[label="",style="solid", color="burlywood", weight=3]; 17422[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17023 -> 17422[label="",style="solid", color="burlywood", weight=9]; 17422 -> 17071[label="",style="solid", color="burlywood", weight=3]; 17024[label="not (esEsOrdering (primCmpInt (Neg wy8210) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17423[label="wy8210/Succ wy82100",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17423[label="",style="solid", color="burlywood", weight=9]; 17423 -> 17072[label="",style="solid", color="burlywood", weight=3]; 17424[label="wy8210/Zero",fontsize=10,color="white",style="solid",shape="box"];17024 -> 17424[label="",style="solid", color="burlywood", weight=9]; 17424 -> 17073[label="",style="solid", color="burlywood", weight=3]; 17025[label="not (esEsOrdering (primCmpInt (Pos wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17425[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17425[label="",style="solid", color="burlywood", weight=9]; 17425 -> 17074[label="",style="solid", color="burlywood", weight=3]; 17426[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17025 -> 17426[label="",style="solid", color="burlywood", weight=9]; 17426 -> 17075[label="",style="solid", color="burlywood", weight=3]; 17026[label="not (esEsOrdering (primCmpInt (Neg wy8230) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17427[label="wy8230/Succ wy82300",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17427[label="",style="solid", color="burlywood", weight=9]; 17427 -> 17076[label="",style="solid", color="burlywood", weight=3]; 17428[label="wy8230/Zero",fontsize=10,color="white",style="solid",shape="box"];17026 -> 17428[label="",style="solid", color="burlywood", weight=9]; 17428 -> 17077[label="",style="solid", color="burlywood", weight=3]; 17070[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17070 -> 17082[label="",style="solid", color="black", weight=3]; 17071[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17429[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17429[label="",style="solid", color="burlywood", weight=9]; 17429 -> 17083[label="",style="solid", color="burlywood", weight=3]; 17430[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17071 -> 17430[label="",style="solid", color="burlywood", weight=9]; 17430 -> 17084[label="",style="solid", color="burlywood", weight=3]; 17072[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82100)) (Pos wy7350)) LT)",fontsize=16,color="black",shape="box"];17072 -> 17085[label="",style="solid", color="black", weight=3]; 17073[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17431[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17431[label="",style="solid", color="burlywood", weight=9]; 17431 -> 17086[label="",style="solid", color="burlywood", weight=3]; 17432[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17073 -> 17432[label="",style="solid", color="burlywood", weight=9]; 17432 -> 17087[label="",style="solid", color="burlywood", weight=3]; 17074[label="not (esEsOrdering (primCmpInt (Pos (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17074 -> 17088[label="",style="solid", color="black", weight=3]; 17075[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17433[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17433[label="",style="solid", color="burlywood", weight=9]; 17433 -> 17089[label="",style="solid", color="burlywood", weight=3]; 17434[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17075 -> 17434[label="",style="solid", color="burlywood", weight=9]; 17434 -> 17090[label="",style="solid", color="burlywood", weight=3]; 17076[label="not (esEsOrdering (primCmpInt (Neg (Succ wy82300)) (Neg wy7350)) LT)",fontsize=16,color="black",shape="box"];17076 -> 17091[label="",style="solid", color="black", weight=3]; 17077[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg wy7350)) LT)",fontsize=16,color="burlywood",shape="box"];17435[label="wy7350/Succ wy73500",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17435[label="",style="solid", color="burlywood", weight=9]; 17435 -> 17092[label="",style="solid", color="burlywood", weight=3]; 17436[label="wy7350/Zero",fontsize=10,color="white",style="solid",shape="box"];17077 -> 17436[label="",style="solid", color="burlywood", weight=9]; 17436 -> 17093[label="",style="solid", color="burlywood", weight=3]; 17082 -> 14963[label="",style="dashed", color="red", weight=0]; 17082[label="not (esEsOrdering (primCmpNat (Succ wy82100) wy7350) LT)",fontsize=16,color="magenta"];17082 -> 17098[label="",style="dashed", color="magenta", weight=3]; 17082 -> 17099[label="",style="dashed", color="magenta", weight=3]; 17083[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17083 -> 17100[label="",style="solid", color="black", weight=3]; 17084[label="not (esEsOrdering (primCmpInt (Pos Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17084 -> 17101[label="",style="solid", color="black", weight=3]; 17085 -> 14929[label="",style="dashed", color="red", weight=0]; 17085[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17086[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17086 -> 17102[label="",style="solid", color="black", weight=3]; 17087[label="not (esEsOrdering (primCmpInt (Neg Zero) (Pos Zero)) LT)",fontsize=16,color="black",shape="box"];17087 -> 17103[label="",style="solid", color="black", weight=3]; 17088 -> 13404[label="",style="dashed", color="red", weight=0]; 17088[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17089[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17089 -> 17104[label="",style="solid", color="black", weight=3]; 17090[label="not (esEsOrdering (primCmpInt (Pos Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17090 -> 17105[label="",style="solid", color="black", weight=3]; 17091 -> 14963[label="",style="dashed", color="red", weight=0]; 17091[label="not (esEsOrdering (primCmpNat wy7350 (Succ wy82300)) LT)",fontsize=16,color="magenta"];17091 -> 17106[label="",style="dashed", color="magenta", weight=3]; 17091 -> 17107[label="",style="dashed", color="magenta", weight=3]; 17092[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg (Succ wy73500))) LT)",fontsize=16,color="black",shape="box"];17092 -> 17108[label="",style="solid", color="black", weight=3]; 17093[label="not (esEsOrdering (primCmpInt (Neg Zero) (Neg Zero)) LT)",fontsize=16,color="black",shape="box"];17093 -> 17109[label="",style="solid", color="black", weight=3]; 17098[label="wy7350",fontsize=16,color="green",shape="box"];17099[label="Succ wy82100",fontsize=16,color="green",shape="box"];17100 -> 14963[label="",style="dashed", color="red", weight=0]; 17100[label="not (esEsOrdering (primCmpNat Zero (Succ wy73500)) LT)",fontsize=16,color="magenta"];17100 -> 17114[label="",style="dashed", color="magenta", weight=3]; 17100 -> 17115[label="",style="dashed", color="magenta", weight=3]; 17101 -> 14908[label="",style="dashed", color="red", weight=0]; 17101[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17102 -> 14929[label="",style="dashed", color="red", weight=0]; 17102[label="not (esEsOrdering LT LT)",fontsize=16,color="magenta"];17103 -> 14908[label="",style="dashed", color="red", weight=0]; 17103[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17104 -> 13404[label="",style="dashed", color="red", weight=0]; 17104[label="not (esEsOrdering GT LT)",fontsize=16,color="magenta"];17105 -> 14908[label="",style="dashed", color="red", weight=0]; 17105[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17106[label="Succ wy82300",fontsize=16,color="green",shape="box"];17107[label="wy7350",fontsize=16,color="green",shape="box"];17108 -> 14963[label="",style="dashed", color="red", weight=0]; 17108[label="not (esEsOrdering (primCmpNat (Succ wy73500) Zero) LT)",fontsize=16,color="magenta"];17108 -> 17116[label="",style="dashed", color="magenta", weight=3]; 17108 -> 17117[label="",style="dashed", color="magenta", weight=3]; 17109 -> 14908[label="",style="dashed", color="red", weight=0]; 17109[label="not (esEsOrdering EQ LT)",fontsize=16,color="magenta"];17114[label="Succ wy73500",fontsize=16,color="green",shape="box"];17115[label="Zero",fontsize=16,color="green",shape="box"];17116[label="Zero",fontsize=16,color="green",shape="box"];17117[label="Succ wy73500",fontsize=16,color="green",shape="box"];} ---------------------------------------- (2481) TRUE